Unordered_mapの特定の順序で挿入されたキーは、イテレータを使用してマップを反復処理するときに同じ順序になりますか?
たとえば:(4,3)、(2、5)、(6、7)をBに挿入すると、次のように繰り返します。
for(auto it=B.begin();it!=B.end();it++) {
cout<<(it->first);
}
それは私たちに4、2、6を与えますか、キーは任意の順序で来ることができますか?
unordered_map
のbegin
メンバー関数に関する cplusplus.com ページから( link ):
Unordered_mapオブジェクトは、特定の要素がその最初の要素とみなされることを保証しないことに注意してください。
そのため、要素が挿入された順序で繰り返される保証はありません。
参考までに、あなたはunordered_map
をもっと簡単に繰り返すことができます:
for (auto& it: B) {
// Do stuff
cout << it.first;
}