Matrices multidimensionales C ++
C ++ permite matrices multidimensionales. Aquí está la forma general de una declaración de matriz multidimensional:
type name[size1][size2]...[sizeN];
Por ejemplo, la siguiente declaración crea un 5 tridimensional. 10. 4 matriz de enteros -
int threedim[5][10][4];
Matrices bidimensionales
La forma más simple de la matriz multidimensional es la matriz bidimensional. Una matriz bidimensional es, en esencia, una lista de matrices unidimensionales. Para declarar una matriz de enteros bidimensionales de tamaño x, y, escribiría algo como sigue:
type arrayName [ x ][ y ];
Dónde type puede ser cualquier tipo de datos C ++ válido y arrayName será un identificador C ++ válido.
Una matriz bidimensional se puede pensar como una tabla, que tendrá x número de filas y y número de columnas. Una matriz bidimensionala, que contiene tres filas y cuatro columnas, se puede mostrar a continuación:
Por lo tanto, cada elemento de la matriz a se identifica mediante un nombre de elemento de la forma a[ i ][ j ], donde a es el nombre de la matriz e i y j son los subíndices que identifican de forma única cada elemento en a.
Inicialización de matrices bidimensionales
Las matrices multidimensionales se pueden inicializar especificando valores entre corchetes para cada fila. A continuación se muestra una matriz con 3 filas y cada fila tiene 4 columnas.
int a[3][4] = {
{0, 1, 2, 3} , /* initializers for row indexed by 0 */
{4, 5, 6, 7} , /* initializers for row indexed by 1 */
{8, 9, 10, 11} /* initializers for row indexed by 2 */
};
Las llaves anidadas, que indican la fila deseada, son opcionales. La siguiente inicialización es equivalente al ejemplo anterior:
int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};
Acceso a elementos de matriz bidimensionales
Se accede a un elemento en una matriz bidimensional utilizando los subíndices, es decir, el índice de fila y el índice de columna de la matriz. Por ejemplo
int val = a[2][3];
La declaración anterior tomará el 4º elemento de la 3ª fila de la matriz. Puede verificarlo en el diagrama anterior.
#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 each array element's value
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;
}
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
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
Como se explicó anteriormente, puede tener matrices con cualquier número de dimensiones, aunque es probable que la mayoría de las matrices que cree sean de una o dos dimensiones.