一、什麼是二維數組
在C++中,數組是一種定義有序數據集合的數據結構。二維數組是指數組的元素也是數組的一種。它是由多個一維數組組成,並按照一定的規律排列,以形成矩陣的形式。比如,我們可以將一個網格圖建立一個二維數組,其中每個元素表示網格中的一個位置。
C++中的二維數組定義方式為:
type arr[num_rows][num_cols];
其中,type表示數組元素的數據類型,num_rows表示數組的行數,num_cols表示數組的列數。
二、使用雙重循環遍歷二維數組
要實現對二維數組的遍歷,我們需要使用兩個for循環,一個循環遍曆數組的行,一個循環遍曆數組的列。
int arr[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
cout << arr[i][j] << " "; //輸出每個元素的值
}
cout << endl; //換行
}
上面的代碼中,我們定義了一個3行4列的二維整型數組,並通過雙重for循環遍歷了數組的每個元素並輸出了它的值。輸出結果為:
1 2 3 4
5 6 7 8
9 10 11 12
三、使用指針遍歷二維數組
與一維數組類似,我們也可以使用指針的方式訪問和遍歷二維數組。對於二維數組,我們需要使用兩個指針來遍曆數組,一個指針指向當前行,另一個指針指向當前列。
int arr[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
int *p = arr[0]; //指向二維數組的首地址
for(int i = 0; i < 12; i++) { //循環遍曆數組中的每個元素
cout << *(p + i) << " "; //輸出每個元素的值
if((i + 1) % 4 == 0) { //每行輸出一個換行
cout << endl;
}
}
上述代碼中,我們定義了一個3行4列的整型二維數組arr,並定義了指向數組首地址的指針p。使用指針方式遍歷二維數組時,我們需要將整個二維數組看做一個一維數組,然後使用指針進行遍歷即可。上述代碼遍歷輸出的結果與前面的雙重循環遍歷方式輸出的結果相同。
四、使用函數遍歷二維數組
為了方便我們對二維數組的遍歷以及其他操作,我們可以通過函數來實現,這樣可以提高代碼的可重用性。
void travel_array(int arr[][4], int rows, int cols) { //定義遍歷函數
for(int i = 0; i < rows; i++) {
for(int j = 0; j < cols; j++) {
cout << arr[i][j] << " ";
}
cout << endl;
}
}
int main() {
int arr[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
travel_array(arr, 3, 4); //調用遍歷函數
return 0;
}
上述代碼中,我們定義了一個名為travel_array的函數,該函數接受一個二維整型數組、數組的行數和列數作為參數,使用雙重for循環遍歷了數組並輸出了每個元素的值。
在主函數中,我們定義了一個3行4列的二維整型數組arr,並調用了travel_array函數將數組作為參數傳遞給函數。函數執行後,輸出數組中每個元素的值。
總結
本篇文章講述了C++中遍歷二維數組的三種方式:雙重循環遍歷、指針遍歷、以及通過函數實現遍歷。通過對以上三個方面的闡述,我們不僅學會了如何遍歷一個二維數組,同時也掌握了不同的遍歷方式和函數封裝的技巧,這將有助於我們更好的開發C++程序。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/235652.html