C 中二維陣列new小結

2021-04-02 23:25:56 字數 1016 閱讀 5574

二維陣列new小結

轉至水木清華 1.

a (*ga)[n] = new a[m][n];

...

delete ga;

缺點:n必須是已知

優點:呼叫直觀,連續儲存,程式簡潔(經過測試,析構函式能正確呼叫) 2.

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

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

ga[i] = new a[n];

...

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

delete ga[i];

delete ga;

缺點:非連續儲存,程式煩瑣,ga為a**型別

優點:呼叫直觀,n可以不是已知 3.

a* ga = new a[m*n];

...

delete ga;

缺點:呼叫不夠直觀

優點:連續儲存,n可以不是已知 4.

vector> ga;

ga.resize(m);                       //這三行可用可不用

for(int i = 1; i < n; i++)          //

ga[i].resize(n);                //

...

缺點:非連續儲存,除錯不夠方便,編譯速度下降,程式膨脹(實際速度差別不大)

5.  vectorga;

ga.resize(m*n);

方法3,4的結合

6.

2的改進版(penrose提供,在此感謝)

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

ga[0] = new a[m*n];

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

ga[i] = ga[i-1]+n;

...

delete ga[0];

delete ga;

缺點:程式煩瑣,ga為a**型別

優點:連續儲存,呼叫直觀,n可以不是已知

C 中二維陣列new小結

二維陣列new小結 轉至水木清華 1.a ga n new a m n delete ga 缺點 n必須是已知 優點 呼叫直觀,連續儲存,程式簡潔 經過測試,析構函式能正確呼叫 2.a ga new a m for int i 0 i m i ga i new a n for int i 0 i m...

二維陣列new小結

a ga n new a m n delete ga 缺點 n必須是已知 優點 呼叫直觀,連續儲存,程式簡潔 經過測試,析構函式能正確呼叫 a ga new a m for int i 0 i m i ga i new a n for int i 0 i m i delete ga i delete...

C 中二維陣列

一 為什麼要使用多維陣列 生活中,有很多事物,僅僅用一維陣列,將無法恰當地被表示。還是說學生成績管理吧。乙個班級30個學員,你把他們編成1到30號,這很好。但現在有兩個班級要管理怎麼辦?人家每個班級都自有自的編號,比如一班學生編是1 30 二班的學生也是1 30。你說,不行,要進行計算機管理,你們兩...