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