1. 程式人生 > >動態建立二維陣列的兩種方法

動態建立二維陣列的兩種方法

首先來講解一下什麼是二維陣列。其實二維陣列也可以說是一個一維陣列,只是這個一維陣列比較特別,它的每一個元素都是一個一維陣列。雖然二維陣列在底層是按照一維陣列的儲存方式來儲存的,即存完第一行,緊跟著存第二行,後邊依次儲存剩下的行。但是我們習慣上把它看做矩陣,一般也選擇讓他以矩陣的方式呈現在我們眼前,所以二維陣列也稱為矩陣。

方法1

既然二維陣列也可以稱為矩陣,那麼我們就可以給二維陣列的每一行開闢一塊空間,然後再用一塊空間把這些空間的行存放和管理起來,這塊空間顯然就是一個指標陣列,陣列的每一個元素都是一個指向一個數組的地址。

看程式碼

 int **arr = NULL;
 int row = 5;//用於表示行數
 int col = 5;//用於表示列數
 arr = new int*[row];//開闢一塊記憶體來存放每一行的地址
 for (int i = 0; i < col; i++)//分別為每一行開闢記憶體
 	arr[i] = new int[col];

方法2

利用vector來建立一個二維陣列

上邊說了二維陣列也可以說是一個一維陣列,它的每一個元素都是一個一維陣列。而vector的底層就是一個數組,如果將vector的型別給個vector型別,就是一個二維陣列了。

看程式碼:

int row = 6;
int col = 6;
vector<vector<int>> array(row);//建立一個有row行的二維陣列arr
for (int i = 0; i < col; i++)
     array[i].resize(col);//設定每一行的元素個數,即列數