map和unordered_map,C++
时间: 2024-03-12 07:42:06 浏览: 81
C++中的哈希容器unordered_map使用示例
map和unordered_map是C++标准库中的两种关联容器,用于存储键值对。
map是一种有序的关联容器,它基于红黑树实现。它的特点是:
1. 键值对按照键的大小进行排序,因此可以按照键的顺序进行遍历。
2. 插入、删除和查找操作的时间复杂度为O(log n),其中n是map中元素的个数。
3. 不允许键重复,如果插入一个已经存在的键,则会更新对应的值。
unordered_map是一种无序的关联容器,它基于哈希表实现。它的特点是:
1. 键值对没有固定的顺序,因此无法按照键的顺序进行遍历。
2. 插入、删除和查找操作的平均时间复杂度为O(1),最坏情况下为O(n),其中n是unordered_map中元素的个数。
3. 允许键重复,如果插入一个已经存在的键,则会更新对应的值。
使用map还是unordered_map取决于具体的需求:
- 如果需要有序遍历键值对或者需要按照键进行排序,可以选择map。
- 如果对遍历顺序没有要求,但是需要快速的插入、删除和查找操作,可以选择unordered_map。
阅读全文