How to iterate a Multidimensional Array?

View Discussion

Improve Article

Save Article

Like Article

Multidimensional arrays are arrays that have more than one dimension. For example, a simple array is a 1-D array, a matrix is a 2-D array, and a cube or cuboid is a 3-D array but how to visualize arrays with more than 3 dimensions, and how to iterate over elements of these arrays? It is simple, just think of any multidimensional array as a collection of arrays of lower dimensions.

n-D array = Collection of (n-1)D arrays 

For example, a matrix or 2-D array is a collection of 1-D arrays.

2D Array is a collection of 1D Arrays

Similarly, you can visualize 3-D arrays and other multidimensional arrays.

How to iterate over elements of a Multidimensional array? 

It can be observed that only a 1-D array contains elements and a multidimensional array contains smaller dimension arrays.

  •  Hence first iterate over the smaller dimension array and iterate over the 1-D array inside it. 
  • Doing this for the whole multidimensional array will iterate over all elements of the multidimensional array.

Example 1: Iterating over a 2-D array

C++

#include <bits/stdc++.h>

using namespace std;

  

int main()

{

    

    int n = 3;

    int m = 3;

    int arr[][3]

        = { { 3, 2, 7 }, { 2, 6, 8 }, { 5, 1, 9 } };

  

    

    for (int i = 0; i < n; i++) {

  

        

        for (int j = 0; j < m; j++) {

  

            

            cout << arr[i][j] << " ";

        }

        cout << endl;

    }

    return 0;

}

Output

3 2 7 2 6 8 5 1 9 

Example 2: Iterating over a 3D array

C++

#include <bits/stdc++.h>

using namespace std;

  

int main()

{

    

    int x = 2, y = 2, z = 2;

    int arr[][3][2] = { { { 1, 2 }, { 3, 4 } },

                        { { 5, 6 }, { 7, 8 } } };

  

    

    for (int i = 0; i < x; i++) {

        cout << "Inside " << i + 1

             << " 2D array in 3-D array" << endl;

  

        

        for (int j = 0; j < y; j++) {

            cout << "Inside " << j + 1

                 << " 1D array of the 2-D array" << endl;

  

            

            for (int k = 0; k < z; k++) {

                cout << arr[i][j][k] << " ";

            }

            cout << endl;

        }

        cout << endl;

    }

    return 0;

}

Output

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