Up until now, all of our arrays
have been onedimensional arrays. These arrays have had
"length", but the "width" (or height) remained as only one cell.


We are now ready to discuss
twodimensional arrays, called matrices
(singular: matrix). A
matrix resembles a table with rows and columns. 
It is possible for arrays to have multiple dimension.
A three dimensional array, for example, has 3 subscripts, where each dimension is represented as a subscript in the array.
While it is possible for arrays to have any number of dimensions, most arrays
are of one or two dimensions.
The elements of a matrix must be of the same data type.
Example: The Computer Club is
participating in a series of Programming Meets. The table below shows
the Club's results, where the maximum score for each contestant in a meet is
25.
Name 
Meet
#1 
Meet
#2 
Meet
#3 
Meet
#4 
Meet
#5 
Robbins 
20 
18 
22 
20 
16 
Montgomery 
18 
20 
18 
21 
20 
Stevenson 
16 
18 
16 
20 
24 
Norton 
25 
24 
22 
24 
25 
Note: Although the
students' names and the meet numbers are shown, they are not part of the actual
data and are not part of the matrix. Remember, the data in a twodimensional array is always of the same data
type.
The data displayed in this table consists of 20 values 
four rows by five columns. This matrix will have 20 cells, or
elements.
Just as we used a special header file for arrays, we will also be
using a special header file for matrices. The
apmatrix class, implements
matrices with "safe" subscripts, similar to what we enjoyed in the
apvector class. If a program attempts to use an outofbounds subscript value
when working with a matrix, the program will be aborted and an error message
will appear.
When you define storage for a matrix (a multidimensional array), you must inform
C++ that the array has more than one dimension by putting more than one subscript in parentheses after the array name.
The following declaration would be used to store the data shown in the table
above:
apmatrix <int> ClubScores(4 , 5); // Declares
a 2D array
This declaration creates a matrix with the following subscripted elements:

columns 
rows

[0][0] 
[0][1] 
[0][2] 
[0][3] 
[0][4] 
[1][0] 
[1][1] 
[1][2] 
[1][3] 
[1][4] 
[2][0] 
[2][1] 
[2][2] 
[2][3] 
[2][4] 
[3][0] 
[3][1] 
[3][2] 
[3][3] 
[3][4] 
