У меня есть мультикарта:
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, но сразу печатаю элемент. Я хотел бы напечатать все ключи и значения. Мне нужно автоматизировать это, потому что карта большая. Если я повторяю, используя итератор для именMultiMap1, я печатаю ключи повторения.