关联式容器:内部存储的是key或者k-v模型的数据
在初阶阶段,我们已经接触过STL中的部分容器,比如:vector、list、deque、
forward_list(C++11)等,这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面
存储的是元素本身。那什么是关联式容器?它与序列式容器有什么区别?
关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是<key, value>结构的键值对,在数据检索时比序列式容器效率更高。
键值对:用来表示具有一一对应关系的一种结构,该结构中一般只包含两个成员变量key和value,key代表键值,value表示与key对应的信息
k-v模型:键值对
在STL中,键值对实际就是一个泛型的类
分类:从底层数据结构上 1. 红黑数结构 2. 哈希结构
树型结构的关联式容器主要有四种:map、set、multimap、multiset。这四种容器的共同点是:使
用平衡搜索树(即红黑树)作为其底层结果,容器中的元素是一个有序的序列。
map:k-v | key必须唯一 |
multimap:k-v | key可以重复 |
set:k模型 | key不能重复 |
multiset: k模型 | key可以重复 |