# 二維陣列 ## 1. 什麼是二維陣列? - **定義:** 二維陣列是由多個一維陣列所組成的陣列,可以用來儲存表格或矩陣型的資料。 - **結構:** 二維陣列有「行」和「列」,每個元素都可以透過兩個索引來存取。 因為我很常忘記哪個是"行"哪個是"列",所以有了一個特別的記法,就是"一列火車是橫的",這樣應該會比較好記一點(吧),反正學了二階行列式**應該**就會更了解了。 ## 2. 如何宣告二維陣列? 在 C++ 中,宣告二維陣列的語法如下: ```cpp type arrayName[row_size][col_size]; ``` - `type` 是陣列元素的資料型態(如 `int`, `float` 等)。 - `row_size` 是陣列的行數(深的)。 - `col_size` 是陣列的列數(橫的)。 ## 3. eg 假設我們要宣告一個 3x3 的整數陣列: ```cpp= //這是初始化的,用{}把值包起來。當然,也可以看成三個一維陣列 int arr[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; ``` 這樣的二維陣列會看起來像這樣: ``` 1 2 3 4 5 6 7 8 9 ``` ## 4. 如何存取二維陣列的元素? - 可以使用兩個索引來存取二維陣列的元素,格式為:`arr[row_index][col_index]`。 - **eg:** ```cpp int arr[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; cout << arr[0][1]; // 輸出 2 cout << arr[2][0]; // 輸出 7 ``` ## 5. 二維陣列的常見應用 - **矩陣運算:** 二維陣列常被用於**儲存和操作**數學中的矩陣。 - **表格數據:** 可以用來儲存和操作表格型的數據,如**學生成績**(應該看過吧?對吧對吧)、遊戲**棋盤**等。 - **影像處理:** 圖像可以視為由像素組成的矩陣,二維陣列適合用來處理**圖**等等的數據。 ## 6. 二維陣列的遍歷 可以使用巢狀迴圈來遍歷二維陣列: ```cpp for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { cout << arr[i][j] << " "; } cout << endl; } //cout換成cin就是輸入資料囉!!!! ``` 這會輸出: ``` 1 2 3 4 5 6 7 8 9 ``` 當然妳也可以 ```cpp for(int i = 0; i < 3; i++){ cout << arr[i][0] << " " << arr[i][1] << " " << arr[i][2] << endl; } ``` ## 7. 注意事項 - **固定大小:** 在 `C++` 中,二維陣列的大小必須在編譯時就確定,**不能動態改變**。 - **初始化:** 可以在宣告時初始化二維陣列,也可以在後面進行逐一賦值。