在C++的函数中如何指定一个数组,使得这个数组的大小由函数的输入值来决定
程序员文章站
2022-07-09 18:32:03
今天调试一个C++程序,在一个函数中定义了一个一维数组,设定数组的大小由函数的输入值来决定。 是这样子的: 然后发现:报错! 报错是这样的: 那么问题来了,在C++中定义数组一定要指定数组大小么? 答案是否定的,我们在定义C++中的数组时,不一定要指定数组大小。 但是向小编代码中那样定义数组就一定要 ......
今天调试一个C++程序,在一个函数中定义了一个一维数组,设定数组的大小由函数的输入值来决定。
是这样子的:
int a[r+l-1];
然后发现:报错!
报错是这样的:
那么问题来了,在C++中定义数组一定要指定数组大小么?
答案是否定的,我们在定义C++中的数组时,不一定要指定数组大小。
但是向小编代码中那样定义数组就一定要指定数组大小了,因为这种定义数组的写法是C语言风格的(即常规数组),必须指定确定大小。
在C++中,还有两种定义数组的方法不需要指定确定大小:
1)使用指针:
int *a=new int[r-l+1];
2)使用容器vector代替数组:
vector<int> a;
vector相当于一个动态的数组,无需指定它的大小。在C++中常规数组是一种确定大小的数据结构,一些函数中使用它很容易溢出,不能达到实际目的。因此在C++中推荐使用vector。
关于vector相关用法,可以看另外一位博主的文章:https://www.cnblogs.com/yoke/p/6080080.html
上一篇: python 实现redis订阅发布功能
下一篇: Vue用v-for给src属性赋值的方法