c++ primer 读书笔记 第九章 顺序容器有那些 vector list deque stack queue priority-queue
c++ primer读书笔记 关联容器与顺序容器的差别
本质的区别是:顺序容器是通过元素在容器内的相对位置来顺序存储和访问元素的;
而关联容器则是通过键(key)来存储和读取元素;
顺序容器介绍的有 vector list deque;
其中vector 相当于数组,顺序存储,便于随机访问,但做插入删除操作的话,消耗资源就比较大;
deque则相当于一个双向生长的数组,也便于随机访问,在头尾删除 增加元素的话也不过多消耗资源,但在中间添加删除元素的话跟vector一样,会比较费时费力;
而deque则相当于链表,不便于做随机访问,但便于做插入删除操作;
适配器:
stack 特点是后进先出,栈;
queue 先进先出(FIFO)队列
有优先级管理的队列
根据以上的适配器描述,
stack,需要支持 从尾部删除,从尾部添加元素的操作,可见上面三个 顺序容器类型都可满足;
queue,需要支持
- front()
- back()
- push_back()
- pop_front()
可见deque和list满足,而选手vector 由于不支持 pop_front()操作,被淘汰;
priority-queue 则要求有随机访问功能,所以vector和deque满足。
同时在对这些容器做删除 增加元素的时候,需要注意到那些迭代器会失效。