c++ - 从 begin() 迭代到 end() 时,STL 映射是否总是给出相同的顺序?

标签 c++ stl map iterator

从我的简单测试来看似乎是这样,但我想知道这是否有保证?

是否存在无法保证订购的情况?

编辑:我特别感兴趣的情况是,如果我用大量条目填充映射,迭代器的顺序在我的可执行文件的多次运行中是否相同?如果条目以不同的顺序插入怎么办?

最佳答案

是的,它维护了一个内部顺序,所以对一个不变的集合的迭代应该总是相同的。来自 here :

Internally, the elements in the map are sorted from lower to higher key value following a specific strict weak ordering criterion set on construction.

关于c++ - 从 begin() 迭代到 end() 时,STL 映射是否总是给出相同的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/979174/

相关文章:

c++ - dlopen(RTLD_NOLOAD) 在 dlclose 之后仍然返回 not null

c++ - 如果我们无法从 C++ 容器中删除元素,我们该怎么办

c++ - 无法解析方法 'shrink_to_fit'

javascript - javascript 中的三种 map 实现。哪一个更好?

c++ - 将 <string, function pointer> 插入 map

c++ - 我的开关盒有什么问题?

c++ - IUnknown 指针引用

c++ - 将自定义仿函数与 std::generate_n() 算法一起使用的正确方法?

c++ - 将数据的平均值插入 vector

c++ - const_iterator 到迭代器 C++ 错误