c++ - 使用指针(new int[size])时,是否需要在代码前确定size?
问题描述
如果我有这样的代码:
int* array = new int[n];
的值n
可以直接调整大小吗?
如果我有一个例子,这是允许的还是ArrSize
需要在我开始示例之前定义为一个不能改变的设定值?
int* newArr = new int[ArrSize];
int j = 0;
for(int i = 0; i < Size; i++){
if(arr[i] > 0){
newArr[j] = arr[i];
j++;
ArrSize++;
}
}
return newArr;
解决方案
n的值可以直接调整大小吗?
你可以做任何你喜欢做的事情n
。但是,此类事情不会追溯更改之前执行的任何代码。这在命令式语言中永远不会发生。
如果您创建一个包含元素的数组n
,则该数组的元素计数将n
是创建数组时的值。事实上,每次使用n
都会基于当时的价值n
。
您应该使用 avector<int>
而不是显式数组来执行您要执行的操作
推荐阅读
- javascript - 我如何收到登录用户的生日?(谷歌登录,oAuth)
- excel - 如果单元格 X 与另一张表中的单元格 Y 匹配,则平均 Vlookup 值
- reporting-services - SSRS - Report Builder 2016 未在客户端的浏览器上下载
- javascript - 如果以低数运行 >= 高数?
- vba - 如何使用 vbscript 将 .tsv 文件转换为 xlsx 文件?
- angular - 如何使溢出-x 在角度材质对话框内容中可见
- java - 有没有办法在 android studio 中更新 listView 项目布局?
- shake-build-system - 在摇动动作中跟踪编译器标志
- hyperledger-fabric - 错误:fabric-ca 请求注册失败并出现错误 [[{"code":20,"message":"Authentication failure"}]]
- reactjs - Redux 表单验证字段无法正常工作