STL共有六大组件:容器、算法、迭代器、仿函数、适配器、空间适配器
时间复杂度
vector: 内部数组时间,三个迭代器,每次扩容扩大到原来的两倍,需要复制全部数据,连续空间,随机访问
- insert() O(N) //插入元素,O(n)的复杂度
- erase() O(N) //删除某个元素,O(n)的复杂度
list: 双向链表
- 访问插入删除O(1)
- 排序O(nlogn)
deque: 双向队列,分段连续数组
- insert(),erase() O(N)
- 头部插入, O(1)
set: 红黑树
- 查找插入删除都是O(logn);
map: 红黑树
- 查找插入删除都是O(logn);
priority: 堆实现
- push() O(n)
- pop() O(n)
- top() O(1)