資料結構--線性表--動態陣列
阿新 • • 發佈:2019-02-03
一、C++建立一維陣列
在C++中建立動態陣列,是用new來實現的
每次使用new後都要釋放
一般的格式:
另一種格式:不需要寫列數
舉例:建立一個5行3列的int型二維陣列
三、建立三維陣列
在C++中建立動態陣列,是用new來實現的
type *p = new type [N]
當然也可以分開來寫type *p1;
p1 = new type [N];
type是指具體的資料型別, N代表的是一維陣列的列數 每次使用new後都要釋放
delete[] p1;
二、C++建立二維陣列 一般的格式:
type (*p)[N] = new type [][N]
type是指具體的資料型別, N代表的是二維陣列的列數 另一種格式:不需要寫列數
舉例:建立一個5行3列的int型二維陣列
當然在每次使用完動態陣列後,需要將其釋放int **p; p = new int *[5]; //建立一個指標陣列,每個元素都是一個指標 for (int i = 0; i < 5; i++) { p[i] = new int[3];//每一個指標陣列中的元素指標都指向一個3個元素的陣列 }
for (int i = 0; i < 5; i++)
{
delete[] p[i];
}
delete[] p;
建立一個動態的row行col列陣列,並隨機賦值0-9include "iostream" include "ctime" using namespace std; int main() { int row, col; int i, j; srand((unsigned)time(NULL)); cout << "輸入二維陣列的行,列:"; cin >> row >> col; //動態定義二維陣列 int **p2; p2 = new int*[row]; for (i = 0; i < row; i++) { p2[i] = new int[col]; } //陣列賦值 for (i = 0; i < row; i++) { for (j = 0; j < col; j++) { p2[i][j] = rand() % 10; } } //輸出陣列 for (i = 0; i < row; i++) { for (j = 0; j < col; j++) { cout << p2[i][j] << '\t'; } cout << endl; } //釋放二維陣列 for (i = 0; i < row; i++) { delete[] p2[i]; } delete[] p2; }
三、建立三維陣列
和建立二維陣列一樣,只需要在新增第三個變數就能完成三維陣列的建立。
例項:建立一個動態的高height、行row、列col的三維陣列,並隨機賦值0-9
#include "iostream" #include "ctime" using namespace std; int main() { int hight, row, col; int i, j,k; srand((unsigned)time(NULL)); cout << "輸入三維陣列高,行,列 : "; cin >> hight >> row >> col; //動態定義三維陣列: int *** p3; p3 = new int**[hight]; for (i = 0; i < hight; i++) p3[i] = new int*[row]; for (i = 0; i < hight; i++) for (j = 0; j < row; j++) p3[i][j] = new int[col]; //輸入三維陣列值: for (i = 0; i < hight; i++) for (j = 0; j < row; j++) for (k = 0; k < col; k++) p3[i][j][k] = rand() % 10; //輸出三維陣列: cout << "輸出三維陣列" << endl; for (i = 0; i < hight; i++) { for (j = 0; j < row; j++) { for (k = 0; k < col; k++) cout << p3[i][j][k] << ' '; cout << endl; } cout << endl; } //釋放三維陣列 for (i = 0; i < hight; i++) for (j = 0; j < row; j++) delete[]p3[i][j]; for (i = 0; i < hight; i++) delete[]p3[i]; delete[]p3; }
原文轉載自:http://blog.csdn.net/liuqi605752176/article/details/52678308 特表感謝