Commit 5567bac0 authored by Margatroid's avatar Margatroid
Browse files

feat(array): 添加多维数组

parent b66fce48
Loading
Loading
Loading
Loading
+28 −1
Original line number Diff line number Diff line
@@ -45,3 +45,30 @@ cout << sum << endl;
### 越界访问下标

数组的下标 $\mathit{idx}$ 应当满足 $0\leq \mathit{idx}< \mathit{size}$ ,如果下标越界,则会产生不可预料的后果,如段错误(Segmentation Fault)。

## 多维数组

多维数组的实质是 「数组的数组」,即外层数组的元素是数组。一个二维数组需要两个维度来定义:数组的长度和数组内元素的长度。访问二维数组时需要写出两个索引:

``` cpp
int arr[3][4]; // 一个长度为 3 的数组,它的元素是长度的 4 的数组
arr[2][1] = 1; // 访问二维数组
```

我们经常使用嵌套的 `for` 循环来处理二维数组。

例:从标准输入中读取两个数 $n$ 和 $m$,分别表示黑白图片的高与宽,满足 $n,~m\leq 1000$。对于接下来的 $n$ 行数据,每行有用空格分隔开的 $m$ 个数,代表这一位置的亮度值。现在我们读取这张图片,并将其存入二维数组中。

```
const int maxn = 1001;
int pic[maxn][maxn];
int n, m;

cin >> n >> m;
for (int i = 1; i <= n; ++i)
  for (int j = 1; j <= n; ++j)
    cin >> pic[i][j];

```

同样地,你可以定义三维、四维,以及更高维的数组。