C++ vector中size/resize和capacity/reserve的区别

C++ vector中size/resize和capacity/reserve的区别size 大小 resize 重新确定大小 capacity 容量 reserve 重新分配空间 size 说明容器中目前实际存在多少元素 resize 会在容器的尾部添加或者删除一些元素 来调整容器的大小使其达到指

大家好,欢迎来到IT知识分享网。

size:大小—-resize重新确定大小

capacity:容量—-reserve重新分配空间

size说明容器中目前实际存在多少元素,resize会在容器的尾部添加或者删除一些元素,来调整容器的大小使其达到指定的大小;

capcity说明至少添加多少元素才会使容器重新分配内存,而reserve在必要的时候会使容器内部缓冲区扩充至一个更大的容量,以确保至少能满足你所指出的空间大小。

vector<int> v; v.reserve(2); v[0]=1; v[1]=2;

在本例中v.reserve(2)只是确保v中有空间能够放下至少两个元素,但是并没有真的为其分配地址空间,对v[0]、v[1]进行赋值是没有意义的,这些内存空间此时可能仍是‘野的’,代码并不能保证正常工作,如果v.resize(2)则可以实现预想的效果。解决这个问题可以使用v.push_back(1)和v.push_back(2)。

本文参考《C++编程剖析》Herb Sutter 著 刘未鹏 译

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/130863.html

(0)
上一篇 2025-08-12 14:33
下一篇 2025-08-12 15:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信