私はマルチマップを持っています:
std::multimap < string, string >::iterator iter_map;
multimap < string, set<string> > my.map;
Typical output and data structure:
key - value
bird - air
bird - earth
fish - water
lion - earth
lion - water
新しいデータが次のようになるように、データ構造を変更したいと思います(印刷するだけではありません)。
bird - air, earth
fish - water
lion - earth, water
他の方法では、重複するキーを削除する方法は?
これは私がしました:
int size_mmap = namesMultiMap1.size();
pair<multimap<string,string>::iterator,multimap<string,string>::iterator> ret;
for (int i = 0; i < 1; i++){
cout << " xxx "<< " =>";
ret = namesMultiMap1.equal_range("xxx");
for (nameItr1=ret.first; nameItr1!=ret.second; ++nameItr1)
cout << " " << (*nameItr1).second;
}
このようにして、キーxxxに関連付けられた値を印刷しますが、要素を一度に印刷します。すべてのキーと値を印刷したいと思います。地図が大きいので自動化する必要があります。namesMultiMap1にイテレータを使用して反復する場合は、繰り返しキーを出力します。