本文参考博主——SeeKHit
原文地址:https://www.cnblogs.com/SeekHit/p/5685513.html
在他文章基础上做了简化和总结
本质
- vector——》动态数组
是一段连续的内存块
- list ——》双向链表
是所有数据元素分开保存,可以任何两个元素没有连续,但它都有两个指向上一元素和下一元素的指针
- deque
是多个连续的内存块,介于上述两者之间,它兼顾了数组和链表的优点
操作上的优缺点
一句话总结优点;
vector——》随机访问
list——》插入
deque——》两端访问,插入
vector | list | deque | |
---|---|---|---|
是否支持下标访问 | √ | × | √ |
最好 | 查询 ,访问 | 任意位置插入、删除 | 两端查询,访问,插入和删除 |
还行 | 末端插入 | 内部插入和删除 | |
缺点 | 内部插入、删除 | 内部访问,查询 | |
同等大小,比vector占据空间更大 |
可以结合他们各自函数来理解,比如vector有专门的push_back表明插入十分快捷
其他特点
只有在预先知道vector大小,其性能才是最优的。