无序容器(unordered_map,unordered_set,unordered_multimap...)
与关联容器(map, set)的区别主要在于底层实现使用的映射方式上,无序容器采用的是Hash方法,而关联容器采用的是红黑树。
在 unordered_map
内部,使用的 Hash Table
对数据进行组织,通过把键值 key
映射到 hash
表中的一个位置进行访问,根据 hash
函数的特点, unordered_map
对于元素查找的时间复杂度可以达到 O(1)
,
但是,它的元素排列是无序的,如下。
适用于适用于查找频率高的场景。
Ref: https://zhuanlan.zhihu.com/p/210458185