2

ユーザーがデータを入力した順序を維持する必要がありますが、重複を排除する必要があります。マップを見たところ、重複は解消されましたが、ユーザーが入力した順序を維持することはできません。セットと同じ問題。両方の要件を満たすことができる stl のデータ構造はありますか? このプロジェクトではブーストを使用できません。

4

3 に答える 3

2

問題は、検索順序を維持すると、重複を検索するのにコストがかかるため、両方を実行するデータ構造を見つける傾向がないことです。C++11 では が導入されstd::unordered_setていますが、これはおそらくあなたが望むものです。

C++11 を使用しない場合は、いくつかの標準コンテナーをクラスにカプセル化できます。項目を asetまたはにポップmapし、イテレータを項目に格納することをお勧めしますvector

于 2013-07-11T00:16:52.143 に答える
1

マップとリストを維持します。各要素について、リストに追加する前にマップを検索します。見つからない場合は、リストに追加してマップに挿入します。それ以外の場合は続行します。

于 2013-07-11T00:13:49.000 に答える