array
- 静态空间,一旦配置不可改变
vetcor
- vector维护连续的线性空间
template<class T,class Alloc=alloc>
class vextor
{
protected:
iterator start; //空间头
iterator finish; //空间尾
iterator end_of_stroage; //目前可用的空间尾
};
- 当添加新元素超过当前容量,则容量 会扩充至2倍
- 重新分配—元素移动—释放原空间
- vector的内存占用空间只增不减
list
- 双向链表
- list不可以用普通指针作为迭代器,因为节点不一定在存储空间内连续
deque
- vetcor单向开口的线性空间
- deque是双向开口的内存空间(头尾分布做插入和删除)
- 双进双出
deque中的中控器
- 由一段一段连续的空间组成
- 采用map(一段连续空间,每个元素都是指针,指向缓冲器)
stack
- 以list作为stack的底层容器
queue
- list作为底层结构,形成queue
heap
- binar search tree(完全二叉树)
priority_queue
- 利用max_heap构成
slist
- 双向