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()

可见dequelist满足,而选手vector 由于不支持 pop_front()操作,被淘汰;

priority-queue  则要求有随机访问功能,所以vector和deque满足。

 

同时在对这些容器做删除 增加元素的时候,需要注意到那些迭代器会失效。

posted @ 2012-08-31 00:06  夏大王  阅读(285)  评论(0编辑  收藏  举报