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

Does an iterator iterate through boost::unordered_set or boost::unordered_map in the same order as long as the set's unchanged?

本文关键字:boost unordered map 集合 set 迭代 顺序 是否 迭代器      更新时间:2023-10-16

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

哈希

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

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