今天细致的学习了map和set容器的用法和功能,终于感受到了自己之前对stl的认识还是太少太浅薄了
今天我来总结一下答题的框架
容器首先分为关联式容器和序列式容器,
简单的是序列式容器,我先说一下序列式容器,序列式容器其实说白了就是简单的链表的实现,内部查找的顺序都是按照链表的顺序结构来查找删除和实现的,
下面说的就是关联式容器{
再说关联式容器之前我先介绍几个知识点:
1二叉搜索树,二叉搜索树可以分为两中,一种是平衡二叉树,另一种是非平衡二叉树,平衡二叉树的实现其实就是我们所说的关联式容器的实现,而非平衡二叉树的实现就是我们说的序列式容器的实现
下面我们讨论的主要是平衡二叉树的问题2,平衡二叉树的地城实现就是红黑树,也叫做RB TREE
当然map和set的实现就是RB tree的实现
之后我们就是介绍我们常见的4种关联式容器的实现
分别是map multimap set multiset
1set set不区分实值和键值,而map区分,map每一个元素都是一个pair,前面第一个元素师键值,后面一个元素是实值,
map、和set都不允许都两个相同的值
2而multiset和multimap允许有两个相同的键值