1、vector:实质是动态堆数组,连续存储的内存区域,支持快速的随机访问。

2、list:实质是双向循环链表,支持在中间进行快速的插入删除,但是不能支持快速的随机访问。非连续的内存区域。

3、deque:也支持快速的随机访问,但随机访问的速度不及vector,连续存储的内存区域,但是分为两级,一级类似于vector,存储实际数据,另一层作为一个Map

deque的实现比较复杂,内部会维护一个map(注意!不是STL中的map容器)即一小块连续的空间,该空间中每个元素都是指针,指向另一段(较大的)区域,这个区域称为缓冲区,缓冲区用来保存deque中的数据。因此deque在随机访问和遍历数据会比vector慢。具体的deque实现可以参考《STL源码剖析》,当然此书中使用的SGI STL与VS2008所使用的PJ STL的实现方法还是有区别的。下面给出了deque的结构图:

4、map:实质是一颗红黑树。

最新文章

  1. Java jacob调用打印机打印word文档
  2. sizzle分析记录: 自定义伪类选择器
  3. Testing with a mocking framework (EF6 onwards)
  4. 数据结构与算法C++描述学习笔记1、辗转相除——欧几里得算法
  5. Python 2.7 - CentOS 7 - ImportError: No module named Tkinter
  6. log4j自动生成日志文件配置
  7. jdk各个版本
  8. JavaScript不可变原始值和可变的对象引用
  9. JAVA 面试整理,面试汇总
  10. VBA 开发学习--基础语法3
  11. 前端传送JSON数据,报Required request body is missing
  12. drozer的使用介绍
  13. Confluence 6 home 目录
  14. BEAM188和LINK180简单实例
  15. 试着理解cookie和session
  16. java中CyclicBarrier简单入门使用
  17. CentOS的epel源rpm最新下载地址获取技巧
  18. Python 字典的遍历
  19. IPv4报文分片
  20. Android开发第二阶段(6)

热门文章

  1. 《Android深度探索HAL与驱动开发》第三章阅读心得
  2. to_date & to_char
  3. shell 脚本技巧
  4. [课程设计]Scrum 1.2 Spring 计划&系统流程&DayOne燃尽图
  5. phar文件的使用
  6. formData上传图片
  7. python之错误和异常
  8. SQL Server 优化-执行计划
  9. Linux uniq常用命令
  10. appsrequest v3 发布了