C++ Matrices multidimensionales
C++ admite matrices multidimensionales. La forma general de declarar una matriz multidimensional es la siguiente:
type name[size1][size2]...[sizeN];
Por ejemplo, la siguiente declaración crea una matriz tridimensional de enteros de 5 . 10 . 4:
int threedim[5][10][4];
Matriz bidimensional
La forma más simple de una matriz multidimensional es la matriz bidimensional. Una matriz bidimensional es, en esencia, una lista de matrices unidimensionales. Para declarar una matriz bidimensional de enteros con x filas e y columnas, la forma es la siguiente:
type arrayName [ x ][ y ];
Donde,typepuede ser cualquier tipo de datos C++ válido,arrayNamees un identificador válido de C++.
Una matriz bidimensional puede considerarse como una tabla con x filas e y columnas. A continuación se muestra una matriz bidimensional con 3 filas y 4 columnas:
Por lo tanto, cada elemento de la matriz 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 manera única cada elemento en a.
Inicialización de una matriz bidimensional
Las matrices multidimensionales se pueden inicializar especificando valores para cada fila entre llaves. A continuación se muestra una matriz con 3 filas y 4 columnas.
int a[3][4] = {
{0, 1, 2, 3} , /* 初始化索引号为 0 的行 */
{4, 5, 6, 7} , /* 初始化索引号为 1 的行 */
{8, 9, 10, 11} /* 初始化索引号为 2 的行 */
};
Las llaves internas anidadas son opcionales; la siguiente inicialización es equivalente a la anterior:
int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};
Acceso a los elementos de una matriz bidimensional
El acceso a los elementos de una matriz bidimensional se realiza mediante 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 obtendrá el elemento de la 3.ª fila y la 4.ª columna de la matriz. Puede verificar esto con el diagrama anterior. Veamos el siguiente programa, donde usaremos bucles anidados para procesar una matriz bidimensional:
Ejemplo
Cuando el código anterior se compila y ejecuta, 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 mencionó anteriormente, puede crear matrices de cualquier dimensión, pero normalmente las matrices que creamos son matrices unidimensionales y bidimensionales.
Otras extensiones
C++ Arrays