multimap
以下のように使用します。
multimap<int, string> mm;
mm.insert(make_pair(1, "jack"));
mm.insert(make_pair(1, "jack"));
mm.insert(make_pair(1, "jack"));
mm.insert(make_pair(1, "joe"));
mm.insert(make_pair(2, "david"));
mm.insert(make_pair(2, "daniel"));
mm.insert(make_pair(3, "alex"));
for (multimap<int, string>::iterator itr = mm.begin(); itr != mm.end(); itr++)
{
cout << "key: " << itr->first << ", value: " << itr->second << endl;
}
結果:
key: 1, value: jack
key: 1, value: jack
key: 1, value: jack
key: 1, value: joe
key: 2, value: david
key: 2, value: daniel
key: 3, value: alex
ご覧のとおり、キー1
には 2 つの異なる値がありjoe
、問題ありませんjack
。<1,"jack">
しかし、コンテナーには 2 つの重複があります。
その重複したアイテムを取り除くにはどうすればよいですか? 私の要件を満たす標準コンテナはありますか? または、既存のコンテナをどのように組み合わせて目標を達成できますか (効率は非常に重要です)。