| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1817 人关注过本帖
标题:三种顺序容器vector、list、deque的优缺点是?
只看楼主 加入收藏
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
三种顺序容器vector、list、deque的优缺点是?
deque的优点就是方便管理队列吧,不像C一样自己管那么麻烦,不知道我想的对不对……list和vector就完全不懂了,和c的用[]定义数组比较区别在什么地方?求指点
搜索更多相关主题的帖子: 管理 优缺点 
2012-02-16 19:04
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:8 
vector是 数组, list是 链表
数组 和 链表 的特性你知道吧,不知道的话去google
deque 的性能介乎 vector 和 list 之间
比如 插入效率,远高于vector,但低于list
比如 定位效率,远高于list,但低于vector
2012-02-17 09:22
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:12 
这个属于数据结构的基本知识。楼主可能没有这方面的知识,学了之后应该就全明白。

vector 就是一头开口的队列,所以就是一般意义上的队列。
deque 是两头开口的。既能往前插也能往后插。
但是它两都一样,如果非要往中间插,就得腾地。vector 没办法,不管往哪插都得往后挪,所以你往第一个插最惨,整个序列都要复制。deque 好一点,如果你插入的位置比较靠前,它会想办法把前面的部分往前挪来腾地。所以最惨的是往中间插。
但是它们的访问效率都很高,vector 只要用首地址,加偏移量就可以直接找到要访问的元素。deque 稍微复杂,但总的来说,访问的位置也是直接算出来的,所以它们的访问时间都是常数 O(1)。

list 和它们思路不一样。你可以自由的在任何位置插入,插入时间是常数。但访问很慢,它根本不知道你要找的元素在哪里,只能从头遍历。
2012-02-17 10:53
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
如果楼主只是想用一般的队列,应该考虑用 queue。它的底层是 deque,但屏蔽了除了往后插以外的插入操作。
2012-02-17 10:55
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
收藏
得分:0 
谢谢啦!

酱油实习生
2012-02-18 09:24
donggegege
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:125
专家分:368
注 册:2011-5-1
收藏
得分:0 
建议你学学 数据结构
2012-02-21 13:30
快速回复:三种顺序容器vector、list、deque的优缺点是?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014184 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved