簡體   English   中英

相同鍵的unordered_map迭代順序

[英]unordered_map iteration order for the same key

當循環遍歷std::unordered_map ,STL不保證考慮哪個特定的元素順序。

我的問題是關於具有相同密鑰的元素的順序,我嘗試使用不同的編譯器,並且如果它們具有相同的密鑰,我總是一個接一個地接收(例如下面的例子)。 我搜索了但我找不到。 它是在標准的某處提到還是依賴於實現?

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

是的,它在C ++ 11 23.2.5 / 6中提到:

在支持等效鍵的容器中,具有等效鍵的元素在容器的迭代順序中彼此相鄰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM