C++ Multidimensional Arrays

C++ allows Multi-Dimensional Arrays. This could be of 2D or 3D (two-dimensional or three-dimensional) Array. These arrays are stored in the form of a table (with rows and columns) which is also known as a matrix.

In C++, multidimensional array is also known as rectangular arrays.

Syntax of multi-dimensional array:

data-type array_name[size1][size2]...[sizeN];

The data-type must be a valid C++ data type, a unique name must be specified to each array and the size must be of an integer constant.

//Two Dimensional array (2D)
int arr[2][3];

//Three Dimensional array (3D)
int arr[2][4][6];

Initialization of Multi Dimensional Array in C++

We can initialize a Multi-Dimensional Array (two-dimensional or three-dimensional) in the following ways in C++.

1. Initialization of two-dimensional array:

The following is the 2 by 3 matrix array that is array with 2 rows and 3 columns.

//Method 1
int arr[2][3] = { {4, 5, 7}, {8, 3, 20} };

OR

//Method 2
int arr[2][3] = {4, 5, 7, 8, 3, 20};

There are two ways shown above to initialize an 2D array. However the method 1 is not preferred.

2. Initialization of three-dimensional array:

//Method1
int arr[2][3][4] = {
    {{3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2}},
    {{13, 4, 56, 3}, {5, 9, 3, 5}, {3, 1, 4, 9}}
    };
OR
//method2
int arr[2][3][4] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 
                 11, 12, 13, 14, 15, 16, 17, 18, 19,
                 20, 21, 22, 23};

Accessing two Dimensional array in C++

Accessing 2d Array:

An array can be accessed by using a specific index number. It can be achieved by placing the particular index number within the two brackets [][]. Such as:

arr[2][3]; //the 4th element of the third row is accessed
arr[3][2]; //the 3rd element of the fourth row is accessed
OR
int val = arr[2][3]; // assigning the element to val

Accessing 3d Array:

Accessing 3-dimensional array is also as same as a two-dimensional array, the only difference is that in 3d array we have to specify 3 subscripts with a required index number.


Example of C++ Multi Dimensional Array:

Example: Two Dimensional Array in C++

C++ Program to display all elements in an 2D array

#include <iostream>
using namespace std;

int main()
{
   int arr[3][2] = {
		{ 10, 55 },
                { 5, 7 },
                { 18, -8 }
       };

   cout << "Displaying each element" << endl;
   //using nested loop to access 2D Array element
   for (int row = 0; row < 3; ++row)
   {
      for (int col = 0; col < 2; ++col)
      {
         cout << "arr[" << row << "][" << col << "] = " << arr[row][col] << endl;
      }
   }

   return 0;
}

Output:

Displaying each element
arr[0][0] = 10
arr[0][1] = 55
arr[1][0] = 5
arr[1][1] = 7
arr[2][0] = 18
arr[2][1] = -8

Example: Three Dimensional Array in C++

C++ Program to display all elements in an 3D array

#include <iostream>
using namespace std;

int main()
{
   int arr[2][3][2] = {
		{
         { 4, 8 },
         { 2, 4 },
         { 1, 6 }
      },
      {
         { 3, 6 },
         { 5, 4 },
         { 9, 3 }
      }
   };

   cout << "Displaying each element" << endl;
   //using nested loop to access 3D Array element
   for (int i = 0; i < 2; ++i)
   {
      for (int j = 0; j < 3; ++j)
      {
         for (int k = 0; k < 2; ++k)
         {
            cout << "arr[" << i << "][" << j << "][" << k << "] = " << arr[i][j][k] << endl;
         }
      }
   }

   return 0;
}

Output:

Displaying each element
arr[0][0][0] = 4
arr[0][0][1] = 8
arr[0][1][0] = 2
arr[0][1][1] = 4
arr[0][2][0] = 1
arr[0][2][1] = 6
arr[1][0][0] = 3
arr[1][0][1] = 6
arr[1][1][0] = 5
arr[1][1][1] = 4
arr[1][2][0] = 9
arr[1][2][1] = 3

As we saw the examples of 2D and 3D arrays, in a similar we can create any number dimension as required. However, the most used multidimensional array is a two-dimensional array.