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