У меня есть unordered_map:unordered_map с вектором использования
std::tr1::unordered_map<unsigned int, vector<unsigned int> > duplicates;
Anad Я хотел бы вставить:
duplicates.insert(make_pair(1, 2));
duplicates.insert(make_pair(1, 5));
duplicates.insert(make_pair(1, 6));
в вектор, потому что они имеют тот же ключ. Я использую цикл for для вставки пар. Как я могу инициализировать вектор, если ни один элемент не имеет один и тот же ключ, и это первый раз, когда я нахожу этот ключ без поиска всего неупорядоченного_мапа?
Я не хочу сначала использовать find (чтобы получить вектор, если он существует), а затем вставить. Это возможно?
Hm. Да, это звук как решение. Можете ли вы привести пример того, как я могу перебирать несколько результатов ключа? И если его нормально использовать std :: tr1 :: unordered_map duplicates; как мне больше не понадобится вектор? –
glarkou
'std :: tr1 :: unordered_multimap duplicates;' должен работать. Взгляните на [эту страницу] (http://www.cplusplus.com/reference/unordered_map/unordered_multimap/equal_range/) для примера повторения всех значений с помощью одного и того же ключа. –
Спасибо большое! Это должно сработать. – glarkou