boost :: unordered_map是否保持插入顺序?

Nav*_*een 4 c++ containers boost

我正在寻找一个容器,它提供了std :: map之类的接口,但保持了元素插入的顺序.由于地图中的元素不会太多,因此查找性能不是一个大问题.将提振:: unordered_map 工作在这种情况下?即它是否保持插入顺序.我是新手来提升图书馆,因此想知道'无序'的确切含义是什么?

Ser*_*kov 19

阅读Boost.Multiindex.它使您有机会创建一个容器,该容器既可以通过键访问数据(如std :: map),也可以按顺序访问数据(如std :: list).

这是一个例子.


sbk*_*sbk 9

unordered_map不保持插入顺序.在这种情况下无序意味着元素的可观察顺序(即,当您枚举它们时)是未指定和任意的.实际上,我希望unordered_map中元素的顺序可以在地图的生命周期中发生变化,因为在调整地图大小时会进行重新调整(尽管这取决于实现)


sbi*_*sbi 6

当我最后一次需要这个时,我用了一个std::vector< std::pair<const Key, Value> >.我不需要太多的std::map界面,所以我没有打扰,但似乎应该相当容易打一个类似地图的界面.

另外,请务必查看此问题的答案.