При переходе по std::unordered_map
STL не дает никаких гарантий, по которым рассматривается конкретный порядок элементов.unordered_map порядок итерации для одного и того же ключа
Мой вопрос касается порядка элементов с одним и тем же ключом, я попробовал его с разными компиляторами, и я всегда получаю один за другим, если у них одинаковый ключ (пример ниже). Я обыскал его, но не смог найти. Он упоминается где-то в стандартах или зависит от реализации?
unordered_multimap<int, int> umap;
umap.insert({30, 9});
umap.insert({10, 1});
umap.insert({20, 5});
umap.insert({30, 8});
umap.insert({20, 4});
umap.insert({10, 2});
for (auto p : umap)
cout << p.first << " " << p.second << endl;
выходы
30 8
30 9
20 4
20 5
10 1
10 2
Добавлен вопрос, тот же ключевой элемент смежный, но между ними последовательность? Спасибо –
@RonTang: Что ты имеешь в виду? Элементы с эквивалентными ключами смежны друг с другом, поэтому они образуют последовательность, как вы заметили. –
Я хочу спросить сортировку значения этого же ключа по тому, что правило, меньшее, большее, вставить последовательность или что-то еще. Это UB. Спасибо –