今天調試一個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