You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用std::vector<int>的resize方法后,新元素是否会被初始化为零?

std::vector resize后元素是否为零?

结论:在C++11及之后的标准中,你代码里的foo.resize(10)执行后,foo的所有元素都会被初始化为0。

具体原因:

  • 当resize(n)导致vector的元素数量增加时,C++11及后续标准要求对新增元素执行值初始化(value-initialization)。
  • 对于int这类内置基础类型,值初始化的行为就是将其设置为0。

C++03及更早版本的差异:

在C++03标准中,resize(n)新增的元素会执行默认初始化(default-initialization),而内置类型的默认初始化不会赋予确定值,元素会是未定义的垃圾值,此时不能保证是0。

内容的提问来源于stack exchange,提问作者P45 Imminent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 06:39:14