Loading docs/lang/array.md +28 −1 Original line number Diff line number Diff line Loading @@ -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]; ``` 同样地,你可以定义三维、四维,以及更高维的数组。 Loading
docs/lang/array.md +28 −1 Original line number Diff line number Diff line Loading @@ -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]; ``` 同样地,你可以定义三维、四维,以及更高维的数组。