容器总结

                         

 

 

顺序容器和关联容器的区别:
①顺序容器只有实值val。
②关联容器的一个元素包含两个部分:键值对(key-value) 即<k值(键值)|实值>。
③顺序容器不涉及排序,关联容器内部自动排序。
④本质区别:顺序容器通过元素在容器中的位置顺序存储和访问元素,而关联容器则是通过键(key)存储和读取元素的。

原文链接:https://blog.csdn.net/weixin_43691058/article/details/88556471

 

无序容器(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

 

C++ Map Key值的比较操作

两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇’\0’为止。

下图举例:

   

对于自定义的结构和类型,需要定义比较操作才能做key值。

定义一个类来实现operator()函数操作:

        bool operator()(const A& a, const A& b)const{}

 也是实现重载;

 

posted @ 2021-10-27 11:28  Louis93  阅读(47)  评论(0)    收藏  举报