help! STL中的vector和deque什么区别啊?

xixizhang 2005-09-26 08:13:18
各位大虾什么时候该用vector
什么时候用deque
各位大虾请指点

刚用STL 还不大清楚
...全文
198 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluesky23 2005-09-26
  • 打赏
  • 举报
回复
学习。
foochow 2005-09-26
  • 打赏
  • 举报
回复
在标准库中vector和deque提供几乎相同的接口,在结构上它们的区别主要在于这两种容器在组织内存上不一样,deque是按页或块来分配存储器的,每页包含固定数目的元素.相反vector分配一段连续的内存,
vector只是在序列的尾段插入元素时才有效率,而deque的分页组织方式即使在容器的前端也可以提供常数时间的insert和erase操作,而且在体积增长方面也比vector更具有效率..
晨星 2005-09-26
  • 打赏
  • 举报
回复
“deque 内部数据结构也是数组啊”
对,内部结构可能是数组,但数组也看怎么用啊。不同的用法就会带来不同的效果。
vector和deque底层承载元素的数据结构极可能类似,但操作上是不同的。
Jagen在路上 2005-09-26
  • 打赏
  • 举报
回复
如steedhorse(晨星)所说。
xixizhang 2005-09-26
  • 打赏
  • 举报
回复
看高质量C++编程里178 说到
deque 内部数据结构也是数组啊
fiftymetre 2005-09-26
  • 打赏
  • 举报
回复
vector是万能容器..
晨星 2005-09-26
  • 打赏
  • 举报
回复
其它还有一些区别,比如vector可以预留空间,deque没有这种机制等。
NinGoo 2005-09-26
  • 打赏
  • 举报
回复
一个是数组,一个是双端队列
晨星 2005-09-26
  • 打赏
  • 举报
回复
deque两头的增删都是常数时间复杂度,vector尾巴上的增删快,头上的增删是O(n)的复杂度。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧