c new 二維陣列方式

2021-06-18 06:53:14 字數 1342 閱讀 4764

c++程式語言中有一種叫做new的二維陣列,它的應用方式比較靈活,可以有多種方法來幫助我們實現一些特定功能。在這裡我們將會總結幾種c++二維陣列new的應用方式,來進行逐一的點評。

c++二維陣列new應用方式一:

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

...   

delete ga;  

缺點:n必須是已知

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

c++二維陣列new應用方式二:

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可以不是已知

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;   

ga.resize(m*n);  

方法3,4的結合

c++二維陣列new應用方式六:

2的改進版

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

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

for(int i = 1; i <

m; i++)   

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

優點:連續儲存,n可以不是已知,析構方便,猜想只需delete ga;

遍歷二維陣列 方法 指標陣列

指標陣列 本質 是陣列。但是陣列中各個元素是指標 定義形式 儲存型別 資料型別 陣列名 元素個數 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程...