Многомерные массивы — это массивы, имеющие более одного измерения. Например, простой массив — это одномерный массив, матрица — это двумерный массив, а куб или прямоугольный параллелепипед — это трехмерный массив, но как визуализировать массивы с более чем 3 измерениями и как перебирать элементы из этих массивов? Это просто, просто подумайте о любом многомерном массиве как о наборе массивов более низких измерений.
n-D array = Collection of (n-1)D arrays
Например, матрица или двумерный массив — это набор одномерных массивов.
2D-массив представляет собой набор 1D-массивов
Точно так же вы можете визуализировать трехмерные массивы и другие многомерные массивы.
Как перебирать элементы многомерного массива
Можно заметить, что только одномерный массив содержит элементы, а многомерный массив содержит массивы меньшего размера.
- Следовательно, сначала выполните итерацию по массиву меньшего размера и выполните итерацию по одномерному массиву внутри него.
- Выполнение этого для всего многомерного массива приведет к повторению всех элементов многомерного массива.
Пример 1: Итерация по двумерному массиву
С++
#include <bits/stdc++.h>
using
namespace
std;
int
main()
{
// Considering 2-D array having 3 rows and 3 columns
int
n = 3;
int
m = 3;
int
arr[][3]
= { { 3, 2, 7 }, { 2, 6, 8 }, { 5, 1, 9 } };
// Iterating over all 1-D arrays in 2-D array
for
(
int
i = 0; i < n; i++) {
// Printing all elements in ith 1-D array
for
(
int
j = 0; j < m; j++) {
// Printing jth element of ith row
cout << arr[i][j] <<
" "
;
}
cout << endl;
}
return
0;
}
Выход
3 2 7 2 6 8 5 1 9
Пример 2: Итерация по 3D-массиву
С++
#include <bits/stdc++.h>
using
namespace
std;
// Driver code
int
main()
{
// Consider 3-D array of dimensions 2*2*2
int
x = 2, y = 2, z = 2;
int
arr[][3][2] = { { { 1, 2 }, { 3, 4 } },
{ { 5, 6 }, { 7, 8 } } };
// Iterating over each 2-D array in 3-D array
for
(
int
i = 0; i < x; i++) {
cout <<
"Inside "
<< i + 1
<<
" 2D array in 3-D array"
<< endl;
// Iterating over each 1-D array
for
(
int
j = 0; j < y; j++) {
cout <<
"Inside "
<< j + 1
<<
" 1D array of the 2-D array"
<< endl;
// Iterating over each element in 1-D array
for
(
int
k = 0; k < z; k++) {
cout << arr[i][j][k] <<
" "
;
}
cout << endl;
}
cout << endl;
}
return
0;
}
Выход
Inside 1 2D array in 3-D array Inside 1 1D array of the 2-D array 1 2 Inside 2 1D array of the 2-D array 3 4 Inside 2 2D array in 3-D array Inside 1 1D array of the 2-D array 5 6 Inside 2 1D array of the 2-D array 7 8