C ++设置数据结构,保持插入顺序

Lah*_*iru 5 c++ boost set data-structures

是否有任何C ++内置set数据结构保持插入顺序?该集是哈希集还是由平衡的二叉树实现的集都没有问题。

Mar*_*cia 5

C ++ 11中,保证std::multisetstd::multimap都保留相同值/相同键元素的插入顺序。

引用C ++ 11标准,

23.2.4关联容器

4关联容器如果每个键最多可以包含一个元素,则它支持唯一键。否则,它支持等效键。set和map类支持唯一键。multiset和multimap类支持等效键。对于multisetmultimap,插入,放置和擦除将保留等效元素的相对顺序

必须明确指出它们的无序(哈希)变体,std::unordered_multiset并且std::unordered_multimap 不能保证(未指定)元素插入的相对顺序。