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

C++中vector<int> dummy1(rows,-1);声明的含义解析

vector<int> dummy1(rows,-1);语句含义说明

先给你补个基础认知:C++里的vector就是可以自动调整大小的动态数组,元素存在连续内存上,用偏移量访问元素的效率和原生数组没差,不用你自己手动处理内存扩容的问题。

整行代码可以拆成两部分理解:

  • vector<int>:声明容器类型,说明这个动态数组里存的每一个元素都是int类型整数
  • dummy1:是这个动态数组的变量名,后续读写这个数组都靠这个名字调用

你重点问的构造部分dummy1(rows,-1),本质是调用vector的带参构造函数,在变量创建的同时直接完成初始化,两个传入参数的作用非常明确:

  • 第一个参数rows:设置这个动态数组初始化完成后的总长度。比如rows的值是10,那刚创建好的dummy1长度就是10,预留了10个存int值的位置
  • 第二个参数-1:设置所有位置的统一初始值。也就是说,不管你第一个参数设的长度是多少,这所有位置上的元素,创建时都会被直接赋值为-1

举个直观的例子:如果代码运行到这一句时,变量rows的值是4,那这句执行完后,dummy1里存储的内容就是[-1, -1, -1, -1],你可以直接用dummy1[0]到dummy1[3]的下标方式访问对应位置的元素,和普通数组的访问逻辑完全一致,后续也可以根据需要动态调整它的长度。

这里提个新手很容易踩的坑:不要把圆括号初始化和花括号列表初始化搞混。如果把这里的圆括号换成花括号写成vector<int> dummy1{rows,-1},效果会完全变成「创建一个长度为2的数组,两个元素分别是rows的值和-1」,和我们上面说的填充指定长度的逻辑完全不同,写的时候要注意区分。

内容的提问来源于stack exchange,提问作者Arpit Sharma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 00:24:43