如果2个元素的键彼此相等,std::multimap会保留插入顺序吗?
是的,std::multimap是一个关联容器,它允许多个元素具有相同的键。当插入具有相同键的元素时,std::multimap会保留它们的插入顺序。这是因为std::multimap内部使用平衡二叉搜索树(如红黑树)来存储元素,这种数据结构会保证元素的顺序。
例如,如果你有以下插入操作:
std::multimap<int, std::string> my_multimap;
my_multimap.insert({1, "one"});
my_multimap.insert({2, "two"});
my_multimap.insert({2, "two again"});
my_multimap.insert({3, "three"});
遍历std::multimap时,你将得到以下顺序:
1 -> "one"
2 -> "two"
2 -> "two again"
3 -> "three"
这就是为什么std::multimap会保留具有相同键的元素的插入顺序。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云