C++數組大小通過輸入確定

在做一道算法題時,需要通過輸入確定數組大小,此時不能通過

cin>>n;

int v[n];

(因爲這是靜態數組,所以需要使用動態數組):

一維:

cin>>n,

int *a=new int[n]

運行時才知道大小爲n;

注意不要忘記刪除我們new的內存

delete []a;

二維:

cin>>m>>n;

int **a=new int *[m];

for(int i=0;i<m;i++)

a[i]=new int[n];

for(int i = 0; i < m; ++i)
delete []a[i];
delete []a; 

或者使用STL的vector容器

自己會擴大,不需指定初始大小

4/4補充:如果在使用數組時,想一一對應,即實際的第i個對應的值v[i],那麼在創建時注意,上界要n+1,將

v[0]賦值爲0;否則會產生野指針。這些小問題要注意下,有時候會忘記導致調試。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章