c++程式語言中有一種叫做new的二維陣列,它的應用方式比較靈活,可以有多種方法來幫助我們實現一些特定功能。在這裡我們將會總結幾種c++二維陣列new的應用方式,來進行逐一的點評。
c++二維陣列new應用方式一:
a (*ga)[n] = new a[m][n];缺點:n必須是已知...
delete ga;
優點:呼叫直觀,連續儲存,程式簡潔(經過測試,析構函式能正確呼叫)
c++二維陣列new應用方式二:
a** ga = new a*[m];缺點:非連續儲存,程式煩瑣,ga為a**型別for(int i = 0; i <
m; i++)
ga[i] = new a[n];
...
for(int i = 0; i <
m; i++)
delete ga[i];
delete ga;
優點:呼叫直觀,n可以不是已知
c++二維陣列new應用方式三:
a* ga = new a[m*n];缺點:呼叫不夠直觀...
delete ga;
優點:連續儲存,n可以不是已知
c++二維陣列new應用方式四:
vector > ga;缺點:非連續儲存,除錯不夠方便,編譯速度下降,程式膨脹(實際速度差別不大)ga.resize(m); //這三行可用可不用
for(int i = 1; i <
n; i++) //
ga[i].resize(n); //
...
c++二維陣列new應用方式五:
vector ga;方法3,4的結合ga.resize(m*n);
c++二維陣列new應用方式六:
2的改進版
a** ga = new a*[m];優點:連續儲存,n可以不是已知,析構方便,猜想只需delete ga;ga[0] = new a[m*n];
for(int i = 1; i <
m; i++)
ga[i] = ga[i-1]+n;
遍歷二維陣列 方法 指標陣列
指標陣列 本質 是陣列。但是陣列中各個元素是指標 定義形式 儲存型別 資料型別 陣列名 元素個數 eg1 int a 3 定義了乙個有3個元素的指標陣列a,每個元素的資料型別為int int i,j,k a 0 i a 1 j a 2 k eg2 int i,j k int a 3 定義了乙個有3個...
二維陣列的傳遞方式
如何將二維陣列作為函式的引數傳遞 今天寫程式的時候要用到二維陣列作引數傳給乙個函式,我發現將二維陣列作引數進行傳遞還不是想象得那麼簡單裡,但是最後我也解決了遇到的問題,所以這篇文章主要介紹如何處理二維陣列當作引數傳遞的情況,希望大家不至於再在這上面浪費時間。正文 首先,我引用了譚浩強先生編著的 c程...
二維陣列的傳遞方式
如何將二維陣列作為函式的引數傳遞 今天寫程式的時候要用到二維陣列作引數傳給乙個函式,我發現將二維陣列作引數進行傳遞還不是想象得那麼簡單裡,但是最後我也解決了遇到的問題,所以這篇文章主要介紹如何處理二維陣列當作引數傳遞的情況,希望大家不至於再在這上面浪費時間。正文 首先,我引用了譚浩強先生編著的 c程...