如果2个元素的键彼此相等,std :: multimap会保留插入顺序吗?

Tho*_*son 9 c++ stl

我想知道这是否属实?如果是,这个行为是否由c ++标准保证?

Jam*_*lis 14

a中的元素std::map必须具有唯一键,所以...不.

所述std::multimap容器允许映射到一个键的多个值.迭代时std::multimap,按键排序元素,但未指定具有相同键的元素的顺序.

需要注意的是在即将到来的C++ 0x标准(N3092),使用相同的密钥元素的相对顺序的最新草案保证(因此,在某些时候,你就可以靠这个行为).

  • 这个陈述似乎与我最后提出的新标准(但是21个月大(N2798 = 08-0308))不同.我引用:对于multiset和multimap,插入和擦除保留了等效元素的相对排序.第768页如果a_eq中包含含有等于t的元素的范围,则在该范围的末尾插入t.第771页 (2认同)
  • @PhillLello:C++0x 后来被命名为 C++11,所以是的,C++11 中保留了顺序。 (2认同)