c++ primer 读书笔记 第九章 顺序容器有那些 vector list deque stack queue priority-queue
2012-08-31 00:06
411 查看
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满足。
同时在对这些容器做删除 增加元素的时候,需要注意到那些迭代器会失效。
本质的区别是:顺序容器是通过元素在容器内的相对位置来顺序存储和访问元素的;
而关联容器则是通过键(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满足。
同时在对这些容器做删除 增加元素的时候,需要注意到那些迭代器会失效。
相关文章推荐
- 《C++ Primer》读书笔记——第九章_顺序容器
- 《C++ Primer》读书笔记-第九章 03 顺序容器操作
- 《C++ Primer》读书笔记第九章-1- 顺序容器概述 And 容器库概览
- 《C++ Primer》读书笔记第九章-2-顺序容器操作 And vector增长问题
- 读书笔记《C++ Primer》第五版——第九章 顺序容器
- C++ primer 读书笔记 第九章 顺序容器
- 《C++ Primer》读书笔记-第九章 01 顺序容器
- 【C++ Primer】【学习笔记】【第九章】顺序容器之:顺序容器的定义
- 【C++ Primer】【学习笔记】【第九章】顺序容器之:迭代器和迭代器范围
- c++ primer(第五版)学习笔记及习题答案代码版(第九章)顺序容器
- C++ Primer 第九章 顺序容器
- C++ Primer 读书笔记 Chapter 9 顺序容器
- 顺序容器 - 1【C++ Primer 学习笔记 - 第九章】
- 【C++ Primer】【学习笔记】【第九章】顺序容器之:顺序容器的操作
- 【c++ primer 笔记】第九章 顺序容器
- C++ Primer 第九章顺序容器
- c++ primer(第五版)笔记 第九章 顺序容器(1)
- C++ Primer 第四版读书笔记(八)之顺序容器(续)
- 顺序容器 - 3【C++ Primer 学习笔记 - 第九章】
- c++ Primer 学习笔记 第九章----顺序容器