只要集合没有改变,迭代器是否以相同的顺序迭代boost :: unordered_set或boost :: unordered_map?

时间:2012-10-04 14:20:48

标签: c++ boost-unordered

只要集合或映射不变,迭代器是否以相同的顺序迭代boost::unordered_setboost::unordered_map

2 个答案:

答案 0 :(得分:5)

哈希映射的某些实现将重新排序散列到同一个bin的项目,将最近访问的项目放在列表的前面,作为优化。这会改变顺序。我不知道boost::unordered_map会这样做,但将来你可能最终会替换std::unordered_map,这将取决于你的编译器的实现。

答案 1 :(得分:1)

它应该是确定性的,但只要它们是所​​谓的无序,你就不应该依赖它来迭代你的元素。