1.容器
1.顺序容器
vector: 矢量容器 数组 #include <vector>
底层放的是数组
扩容:
1. 扩 2 倍的内存
2. 旧的数据拷贝到新的内存中
3. 释放旧的空间
4. 指向新的空间
优点:尾部快速的插入,和访问时间复杂度为 O(1)
缺点:头插和任意位置插入时间复杂度为 O(n)
list: 双向链表容器 双向链表 #include<list>
优点:支持在任意位置快速的插入删除。头插、尾插、按位置插入、头 删、尾删的时间复杂度 O(1)
缺点:访问时间复杂度 O(n)
deque: 双端队列容器 双端队列 #include <deque >
优点: 支持在头部或者尾部快速的插入和删除
缺点:按位置插入和删除时间复杂度为 O(n)
2.关联容器 红黑树 BST
红黑树特点是一个简单的 BST 树,中序有序
set 单重集合 #include<set>
不允许元素重复
multiset 多重集合
允许元素重复
map 单映射 key_value 键值对 #include<map