map && unordered_map
map中元素是一些key-value 对,关键字起索引作用,值表示和索引相关的数据。
底层实现
- map底层实现是 基于红黑树实现的,因此map
内部元素排列是有序的
。 - unordered_map底层实现是 基于哈希表实现的,因此其
元素的排列顺序是杂乱无序的
map
优点:
有序性,这是map结构的最大优点,其元素的有序性在很多应用中都会简化很多的操作。
map的查找、删除、增加等一系列操作时间复杂度稳定,都为 O ( l o g n ) O(logn) O(logn)
缺点:
查找、删除、增加等操作平均时间复杂度较慢,与n相关。
unordered_map
优点:
查找、删除、增加的操作较快,时间复杂度为常数级 O ( 1 ) O(1) O(1)
缺点:
因为unordered_map
内部基于哈希表,以 (key-value)对 的形式存储,因此空间占用率较高
unordered_map
的查找、删除、添加的时间不稳定,平均为
O
(
1
)
O(1)
O(1),取决于哈希函数。极端情况下可能为
O
(
n
)
O(n)
O(n)