a b length date
1: 1 2 3 2016-12-28
2: 1 2 3 2016-12-29
3: 1 2 3 2016-12-30
这会回显1还是2?即,我可以使用emplace将新对添加到多图,而不会影响具有相同密钥的旧对吗?
答案 0 :(得分:0)
通过试验http://cpp.sh/此输出2,emplace不会用相同的密钥覆盖旧对。
答案 1 :(得分:0)
最好自己查看。从定义std::multimap
允许对不同的值使用相同的键,std::map
不会。输出为:2
,因此允许在multimap中的相同键下具有2个不同的值。
IdeONE:https://ideone.com/eRkBmV
答案 2 :(得分:0)
来自 [associative.reqmts] / 4 (强调我的):
关联容器支持唯一键,如果每个键最多可包含一个元素。否则,它支持等效键。 set和map类支持唯一键; multiset和multimap类支持等效键。对于multiset和multimap,insert,emplace和erase保留等效元素的相对顺序
事实上,multimap
的重点是能够使用相同的密钥存储多个元素,而不是map
。