一、定義和初始化二維數組
C++中創建一個二維數組需要指定行和列,可以用下面的語法來定義一個二維數組:
int arr[row][col];
其中,row
和col
都為整數類型的變量,分別表示二維數組的行數和列數。
初始化二維數組可以通過下面的語法實現:
int arr[row][col] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
其中,二維數組的元素按照行優先順序排列,用雙括號來表示數組的行和列。上面的代碼表示創建了一個3行3列的二維數組,並把它初始化為1到9的遞增序列。
二、讀寫數組元素
讀取二維數組元素時需要指定元素的行和列,可以用下面的語法實現:
int val = arr[row][col];
其中,row
和col
分別表示所要讀取元素的行和列,val
為數組元素的值。
賦值二維數組元素時也需要指定元素的行和列,可以用下面的語法實現:
arr[row][col] = val;
其中,row
和col
分別表示所要賦值元素的行和列,val
為要賦的值。
三、使用循環輸出數組
C++中可以使用嵌套循環遍歷二維數組,並輸出其中的元素值。下面是一個示例代碼:
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
cout << arr[i][j] << " ";
}
cout << endl;
}
上面的代碼中,外層循環控制二維數組的行數,內層循環控制每行的列數。在循環體中,通過cout
語句輸出每個元素的值,用空格隔開,輸出完每行後再使用endl
換行符切換到下一行輸出。
示例代碼
下面是一個使用二維數組實現迷宮問題的代碼示例:
#include <iostream>
using namespace std;
const int row = 6, col = 6;
int maze[row][col] = {
{0, 0, 0, 0, 0, 0},
{0, 1, 0, 1, 1, 0},
{0, 0, 0, 0, 0, 0},
{0, 1, 0, 1, 0, 1},
{0, 1, 0, 0, 0, 1},
{0, 0, 0, 1, 0, 0}
};
bool is_valid(int x, int y) {
if (x >= 0 && x =0 && y < col && maze[x][y] == 0) {
return true;
}
else {
return false;
}
}
bool maze_path(int x, int y) {
if (x == row - 1 && y == col - 1) {
maze[x][y] = 2;
return true;
}
else {
if (is_valid(x, y)) {
maze[x][y] = 2;
if (maze_path(x-1, y) || maze_path(x, y+1) || maze_path(x+1, y) || maze_path(x, y-1)) {
return true;
}
maze[x][y] = 0;
}
return false;
}
}
int main() {
maze_path(1, 0);
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
cout << maze[i][j] << " ";
}
cout << endl;
}
return 0;
}
小結
二維數組是C++中常用的數據結構之一,可以用於表示矩陣、圖等複雜數據結構。創建和操作二維數組需要了解其基本語法和用法。C++提供了靈活的數組定義方式,可以使用簡單的語法來創建多維數組。在操作二維數組時,需要注意指定元素的行和列,利用嵌套循環遍歷二維數組,並可以實現各種算法和應用。
原創文章,作者:XARS,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/133971.html