`
xinyiwust
  • 浏览: 13117 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

stl deque源码学习笔记

    博客分类:
  • C++
阅读更多
1.deque是一种优化了的、对序列两端元素进行添加和删除操作的基本序列容器。它允许较为快速地随机访问,但它不像vector 把所有的对象保存在一块连续的内存块,而是采用多个连续的存储块,并且在一个映射结构中保存对这些块及其顺序的跟踪。向deque 两端添加或删除元素的开销很小。它不需要重新分配空间,所以向末端增加元素比vector 更有效。

2.deque的size()函数是常量级的:
size_type size() const { return _M_finish - _M_start; }


3.与vector相比较,deque没有内存再分配的消耗(vector在内存不够时会调用reserve()函数增加空间,但是会涉及到内存的移动)。

4.与list相比,deque可以进行比较快速的随机访问(尽管没有vector快,但性能是可以接受的)。

5.deque 是对vector 和list 优缺点的结合,它是处于两者之间的一种容器。

最后推荐大家两篇关于deque的文章:
stl_deque.h源码分析:http://blog.csdn.net/mdl13412/article/details/6647409,写的非常详细。
deque的性能测试研究:http://www.knowsky.com/394437.html
0
3
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics