C++ Multidimensional Arrays
C++ supports multidimensional arrays. The general form of a multidimensional array declaration is as follows:
type name[size1][size2]...[sizeN];
For example, the following declaration creates a three-dimensional 5. 10. 4 integer array:
int threedim[5][10][4];
Two-Dimensional Arrays
The simplest form of a multidimensional array is a two-dimensional array. A two-dimensional array is essentially a list of one-dimensional arrays. To declare a two-dimensional integer array with x rows and y columns, the form is as follows:
type arrayName [ x ][ y ];
Where type can be any valid C++ data type and arrayName is a valid C++ identifier.
A two-dimensional array can be thought of as a table with x rows and y columns. Here is a two-dimensional array with 3 rows and 4 columns:
Thus, each element in the array is identified by an element name of the form a[ i , j ], where a is the array name, and i and j are the subscripts that uniquely identify each element in a.
Initializing Two-Dimensional Arrays
Multidimensional arrays can be initialized by specifying values within braces for each row. Here is an array with 3 rows and 4 columns:
int a[3][4] = {
{0, 1, 2, 3} , /* Initialization for row indexed by 0 */
{4, 5, 6, 7} , /* Initialization for row indexed by 1 */
{8, 9, 10, 11} /* Initialization for row indexed by 2 */
};
The nested braces are optional, and the following initialization is equivalent to the above:
int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};
Accessing Two-Dimensional Array Elements
Elements in a two-dimensional array are accessed using subscripts (i.e., the row index and the column index). For example:
int val = a[2][3];
The above statement will fetch the element in the 3rd row and 4th column of the array. You can verify this with the diagram above. Let's look at the following program, which uses nested loops to process a two-dimensional array:
Example
#include <iostream>
using namespace std;
int main ()
{
// An array with 5 rows and 2 columns
int a[5][2] = { {0,0}, {1,2}, {2,4}, {3,6},{4,8}};
// Output the value of each array element
for ( int i = 0; i < 5; i++ )
for ( int j = 0; j < 2; j++ )
{
cout << "a[" << i << "][" << j << "]: ";
cout << a[i][j]<< endl;
}
return 0;
}
When the above code is compiled and executed, it produces the following result:
a[0][0]: 0
a[0][1]: 0
a[1][0]: 1
a[1][1]: 2
a[2][0]: 2
a[2][1]: 4
a[3][0]: 3
a[3][1]: 6
a[4][0]: 4
a[4][1]: 8
As mentioned above, you can create arrays of any dimension, but typically, we create one-dimensional and two-dimensional arrays.