list,vector和deque的区别

 我来答
山东中公优就业
2017-11-28 · TA获得超过1511个赞
知道小有建树答主
回答量:907
采纳率:88%
帮助的人:206万
展开全部

一、vector 向量 相当于一个数组。在内存中分配一块连续的内存空间进行存储,支持补丁大小的存储。当超过已分配的空间是,会整体重新分配一块内存进行存储。

优点

1、不指定一块连续内存进行存储,可以像数组一样操作。

2、随机访问方便,支持下标访问和vector.at()操作。

3、节省空间。

缺点


1、在内部进行插入删除,效率较低。

2、只能在末端进行pop和push。

3、当动态长度超过默认分配大小后,要整体重新分配、拷贝和施放。

二、list 双向链表。每个结点都包含一个信息块Info、一个前驱指针Pre和一个后驱指针Post。可不比分配必须的大小,方便的进行插入删除操作。使用的是非连续的 内存空间进行存储。

优点

1、不适用连续内存完成动态操作。

2、在内部方便进行插入删除操作。

3、可在两端进行push和pop操作。

缺点

1、不支持随机访问,即下标操作和.at()。

2、相对于vector占用内存多。

三、deque双向队列,在功能上合并了vector和list。

优点

1、支持随机访问。

2、可以再两端进行push和pop操作。

3、在内部方便进行插入和删除操作。

缺点

占用内存较多。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式