今天上午看了一下一些关于stl的博客,STL容器主要分为
顺序容器 vector(向量容器)
deque(双端队列容器)
list(双向链表)
关联容器 set(单重集合)
multiset(双重集合)
map(单重映射表)
multimap(多重映射表)
容器适配器 stack(栈) queue(队列) prority_queue(优先级队列);

(一)vector向量容器
1.包含在头文件#include
2.功能 模拟了一个动态数组
3.底层实现
首先开辟一定大小的数组 随着元素的增加,如果空间不够之后 自动采取扩容机制

二)deque双端队列
1.包含在头文件#include
2.底层实现
底层是一个二维数组 刚开始只开辟了两个格子的一维数组,每个一维数组里的指针指向一个二维数组的格子
每个指针指向的格子的大小由创建的双端队列所存放的数据类型有关
tempalate
QUEUE_SIZE = 4096/T

(三)list双向链表
底层是一个环状的循环链表 由于其链表节点具有pre和next域 所以list也支持push_back、push_front、pop_back、pop_front
根据链表的插入与删除 插入时需要配置一个节点空间 删除时需要删除对应元素的节点空间
它的扩容机制不受影响 每次插入节点 只需要先开辟节点空间 在放置元素
它的底层不是连续的 所以不能通过[]随机访问元素 但是可以双向遍历
增加元素都不会使迭代器失效
删除元素时 只是指向当前被删元素的迭代器失效 不影响其他迭代器
目前只看懂这些,加油!!!