一句话理解
多维数组就是更多层下标,本质仍是连续内存。
为什么要学
三维 DP、一层层的立方体数据会用到。能降维就降维。
讲解
int a[2][3][4]; 访问 a[x][y][z]。
维度越高越占内存,也越容易下标写乱。先把每一维的含义写在注释里。
很多所谓三维,其实可以用一维加下标公式,或用 vector。初学先会二维即可。
例子
int a[2][2][2];
a[0][1][1] = 9;
cout << a[0][1][1];
输出:
9
三个下标一起定位到唯一的一格。
常见错误
- 三维开 400×400×400 的 int,大约 256MB,可能 MLE。
- 循环层数和下标顺序不一致。