只要集合或映射不变,迭代器是否以相同的顺序迭代boost::unordered_set
或boost::unordered_map
?
答案 0 :(得分:5)
哈希映射的某些实现将重新排序散列到同一个bin的项目,将最近访问的项目放在列表的前面,作为优化。这会改变顺序。我不知道boost::unordered_map
会这样做,但将来你可能最终会替换std::unordered_map
,这将取决于你的编译器的实现。
答案 1 :(得分:1)
它应该是确定性的,但只要它们是所谓的无序,你就不应该依赖它来迭代你的元素。