Hash_map

добрый день.есть hash_mapmy_maptypedef pair Int_Pair;мне надо сделать так чтоб у каждого ключа маего hash_map было не одно значения а много т.е как бы по кажгому ключу лист?т.е могу ли я сделать такmy_map.insert(Int_Pair("а", "v"));my_map.insert(Int_Pair("а", "k"));будел ли после такиь операц, у меня в мапе содержатся key-a value v и с тем же key oм  value k?
10 ответов

Используй std::multimap, std::hash_multimap. 
будел ли после такиь операц, у меня в мапе содержатся key-a value v и с тем же key oм  value k?
Научись писать осмысленно. Приходится по 3 раза перечитывать, чтобы что-то понять.


извени за не разборчевый пост но попробую снововот у меня есть hash_map я добовляю в мап паруmy_map.insert(Int_Pair("а", "v")); т.е у меня ключь а а значение v так яот если я еше добавлюв мап след пару my_map.insert(Int_Pair("а", "k")) мне надо чтоб у меня получилось типа такого один ключь в мапе и лист значеия по этому ключю такое реално зделаьт с мапом?или мне предется для значение каждого ключа в мапе хранить отделный лист?


такого один ключь в мапе и лист значеия по этому ключю такое реално зделаьт с мапом?
с map'oм нереально
Используй std::multimap, std::hash_multimap. 
Добавлено через 41 секунду
извени за не разборчевый пост но попробую сново
Я про твой русский. Используй word чтоли или spell checker какой-нибудь. 


да еще вопрос а как вез инсертат.е в итоде у меня должно получится my_map['a'] = 'v'my_map['a'] = ''k'т.е  один ключь а а у него 2 значение или болше v и  k ...


да еще вопрос а как вез инсертат.е в итоде у меня должно получится my_map['a'] = 'v'my_map['a'] = ''k'т.е  один ключь а а у него 2 значение или болше v и  k ...
так. это не multi_map уже. А типичный std::map >, только действовать там надо несколько иначе:
std::map<char, std::vector<char> > my_map;my_map['a'].push_back('v');my_map['a'].push_back('k');...


bsa, а как мне проверить в мапе а ключь есть если есть по этому ключу заполнить вектор а вот если нет то создать новый  элемент в мапеДобавлено через 8 минут и 12 секундступил мап  же не допускает дублов.у меня другой вопрос а  как удалить с вектора значения?Добавлено через 9 минут и 30 секундесли вектор пуст то надо удалить сам щлемент с мапа а если вектор не пут то как с вектора удалить?Добавлено через 10 минут и 42 секундыm_map_explorer.erase(?????)


remove\erase у вектора сделать.т.е erase(remove(..), vector.end() );вроде так, если я ниче с параметрами не напутал.


knut, может книжку стоит почитать по STL?


есем спасибо bsa, точно стоит


bsa, точно стоит
Это хорошо, что сам согласен. Вот я недавно прочитал Саттера (Эффективное программирование, кажется). И нашел ошибку у себя в программе, из-за которой она иногда не работала.