unordered_multimap 和map的差异
时间: 2024-04-26 17:18:19 浏览: 90
C++11 unordered_map与map(插入,遍历,Find)效率对比。
unordered_multimap和map都是C++中的关联容器,用于存储键值对。它们之间的主要差异有以下几点:
1. 排序方式:map是有序容器,根据键值进行排序;而unordered_multimap是无序容器,不进行排序。
2. 插入和查找效率:由于unordered_multimap使用哈希表实现,插入和查找元素的平均时间复杂度为O(1);而map使用红黑树实现,插入和查找元素的平均时间复杂度为O(log n)。
3. 元素唯一性:map要求键值对的键是唯一的,如果插入重复的键,则会覆盖原有键的值;而unordered_multimap允许键值对的键重复。
4. 迭代器失效:插入或删除元素后,map的迭代器仍然有效;而unordered_multimap的迭代器可能会失效,因为哈希表的重新哈希操作可能会导致元素重新分布。
5. 内存占用:由于unordered_multimap使用哈希表实现,其内存占用比map更高。
阅读全文