概述

文章参考:https://blog.csdn.net/weixin_45745854/article/details/122785542

unordered_map是一种关联容器,存储基于键值和映射组成的元素,即key-value。允许基于键快速查找元素。在unordered_map中,键值唯一标识元素,映射的值是一个与该对象关联的内容的对象。

对于有序和无序性:

  • unordered_map的无序体现在内部存储结构为哈希表,以便通过键值快速访问元素。
  • 与之对应的有序的关联容器为map,map的有序体现在内部存储结构为红黑树,存储时元素自动按照从小到大的顺序排列。

​ 而内部存储结构也决定了unordered_map和map在某些特性上的不同:

  • 查找的效率
    • unordered_map查找效率更高,可以达到O(1),但是对于元素子集的范围迭代效率较低。
    • 对于map,按照中序遍历的遍历次序,能够方便迭代得出从小到大的元素

unordered_map的模板定义如下:

1
2
3
4
5
6
7
template < class Key,                                    // unordered_map::key_type
class T, // unordered_map::mapped_type
class Hash = hash<Key>, // unordered_map::hasher
class Pred = equal_to<Key>, // unordered_map::key_equal
class Alloc = allocator< pair<const Key,T> > // unordered_map::allocator_type
> class unordered_map;

unordered_map特性

unordered_map基本函数

unordered_map成员函数