注册 登录
编程论坛 C++教室

vector与new哪个分配内存方案更好?

cppzh 发布于 2010-09-11 01:19, 2945 次点击
如题。
6 回复
#2
staor2010-09-11 02:00
vector内存分配简便,可先建立空vector再添加元素进去,.好处:不用先预定vector大小.
而new在内存中分配时则要求先知道大小.如new int [10],,要预先知道大小..
:-D
#3
cppzh2010-09-11 09:24
回复 2楼 staor
知道。我是问它们的效率相比怎么样?
可以通过建立辅助动态链表的方法使new也能够不知道数组或对象长度开辟动态数组或对象。
#4
hahayezhe2010-09-11 11:03
你可以看看list和vector 关于效率和开销的问题 取决于你应用时数据的大小
#5
fishviv2010-09-11 11:42
欢迎加入116451337 C与C++的乐园
#6
x_wangyue2010-09-11 15:09
应该是vector吧,标准库的实现者采用以最小的代价连续储存元素的内存分配策略。为了使vector容器实现快速的内存分配,其实际所分配的
内存比当前所需的空间多一些,vector预留的这些额外的储存区,用于存放新添加的元素,于是不必为每个新元素重新分配容器。
个人觉得比起new应该方便的多,而且效率也很高!
#7
hahayezhe2010-09-11 16:03
但是开销大了啊 !
比如你本来有10000字节
这时你需要10001 字节 那么vector会开双倍 20000  
你浪费9999的地方 vector是按当前*2的基数开的
1