标题:vector与new哪个分配内存方案更好?
只看楼主
cppzh
Rank: 1
等 级:新手上路
帖 子:17
专家分:7
注 册:2010-8-23
结帖率:100%
已结贴  问题点数:20 回复次数:6 
vector与new哪个分配内存方案更好?
如题。
搜索更多相关主题的帖子: 方案 new 内存 vector 
2010-09-11 01:19
staor
Rank: 2
等 级:论坛游民
帖 子:12
专家分:45
注 册:2010-9-5
得分:5 
vector内存分配简便,可先建立空vector再添加元素进去,.好处:不用先预定vector大小.
而new在内存中分配时则要求先知道大小.如new int [10],,要预先知道大小..
:-D
2010-09-11 02:00
cppzh
Rank: 1
等 级:新手上路
帖 子:17
专家分:7
注 册:2010-8-23
得分:0 
回复 2楼 staor
知道。我是问它们的效率相比怎么样?
可以通过建立辅助动态链表的方法使new也能够不知道数组或对象长度开辟动态数组或对象。

宁静致远
2010-09-11 09:24
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
得分:10 
你可以看看list和vector 关于效率和开销的问题 取决于你应用时数据的大小
2010-09-11 11:03
fishviv
Rank: 1
等 级:新手上路
帖 子:45
专家分:9
注 册:2010-9-10
得分:0 
欢迎加入116451337 C与C++的乐园
2010-09-11 11:42
x_wangyue
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:34
专家分:144
注 册:2010-8-30
得分:3 
应该是vector吧,标准库的实现者采用以最小的代价连续储存元素的内存分配策略。为了使vector容器实现快速的内存分配,其实际所分配的
内存比当前所需的空间多一些,vector预留的这些额外的储存区,用于存放新添加的元素,于是不必为每个新元素重新分配容器。
个人觉得比起new应该方便的多,而且效率也很高!
2010-09-11 15:09
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
得分:2 
但是开销大了啊 !
比如你本来有10000字节
这时你需要10001 字节 那么vector会开双倍 20000  
你浪费9999的地方 vector是按当前*2的基数开的
2010-09-11 16:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-320067-1-1.html




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

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