STL-vector与list的区别
来源:互联网 发布:淘宝达人平台入口 编辑:程序博客网 时间:2024/05/21 09:28
标准库定义了三种顺序容器类型:vector、list和deque(双端队列double-end-queue),他们的差别在于访问元素的方式以及对容器进行插入、删除等相关操作的运行代价不同。
vector 支持快速随机访问 list 支持快速插入、删除 deque 双端队列
vector是顺序存储,其地址空间是连续的,对其进行插入、删除操作会引起内存的拷贝与移动。在中间插入(或删除)元素,其后面的元素都要移动,如果该快内存后面的剩余空间不足以存储插入的元素还会造成整个容器的拷贝,vector每次扩展容量时是扩展capacity的整数倍(对于小对象来说效率比较高)。如果存储的是复杂数据类型,拷贝构造函数又比较复杂的话,vector的插入和删除操作的运行代价是非常大的。另外,因为vector是顺序存储,因此支持下标访问,随机访问效率较高。
list类似于数据结构的双向链表,其地址空间是不连续的,通过指针来进行数据的访问。list的插入删除不会引起其他数据元素内存的拷贝,只是指针的变化。list支持在容器的任意位置高效的插入和删除。
(无论是对于vector还是deque,插入和删除都会引起部分或全部迭代器的失效。)
vector和deque的迭代器支持自增 自减运算以及其它算数运算
list的迭代器不支持算数运算,只支持自增 自减运算,因此对于一个list的迭代器:
list<int> list1;list<int>::iterator iter = list.begin();iter = iter + 3; //error ,但是同样的操作对于vector是正确的iter++; //ok
0 0
- STL-vector与list的区别
- STL vector list deque区别与实现
- STL vector list deque区别与实现
- STL vector list deque区别与实现
- STL中vector、deque、list的区别
- STL中vector、list、deque的区别
- STL中vector、list、deque的区别
- STL之vector、list、deque的区别
- STL中vector、list、deque的区别
- vector与list的区别
- vector与list的区别
- List与vector的区别
- vector与list的区别
- STL容器区别vector,list
- STL list,vector,deque区别
- [C++]STL vector list deque区别与实现
- STL中deque详解及与vector和list的区别
- vector与list区别
- iOS 设备的屏幕尺寸、分辨率及其屏幕边长比例详细情况是怎样的?
- Ch2-4:add reverse 1 digit format number in linked list
- WinCE之TCP编程——客户端
- PetaBricks 安装
- JDBC连接MySQL数据库及示例
- STL-vector与list的区别
- 组合数学合集
- 送她的光立方
- A Pocketful of Pigs
- 4g slim开机后看到主机后面的spdif接口里面亮了个红灯,这是正常现象吗?yvj
- MFC获取系统当前时间三种方式
- Filter-过虑器应用之2-设置页面缓存
- ireport报表一
- Java、MySql中时间类型与字符串类型的相互转换