Requisitos:
Haber leído el artículo "C++ Variables de tipo vector"
Haber leído el artículo "C++ Variables multivalor (Arrays)"
Sabiendo usar vector o arrays crear matrices es muy sencillo:
vector<vector<int> > matriz;
Es muy importante fijarse que entre los dos ‘> >’ hay un espacio. Sino no compilará porque lo interpretará como el operador >> como el que usa 'cin'.
La instrucción anterior crea una matriz de int's, pero de tamaño 0x0. Para crear una matriz del tamaño que deseemos hacemos:
vector<vector<int> > matriz(num_filas, vector<int> (num_columnas));
Ahora hemos creado una matriz de num_filas x num_columnas.
De hecho, analizando bien la instrucción, hemos creado un vector de tamaño num_filas donde cada posición es un vector de tamaño num_columnas.
Si quisiéramos dar un valor inicial a todas las posiciones de la matriz, por ejemplo un 0, haríamos:
vector<vector<int> > matriz(num_filas, vector<int> (num_columnas, 0));
Crear una matriz con arrays es más fácil:
int matriz[num_filas][num_columnas];
Pero evidentemente con arrays no podemos usar las funciones que nos permite vector, como push_back(), size(), etc.
Sin embargo una ventaja de usar arrays para crear matrices es que podemos especificar un valor inicial a cada una de las posiciones de una matriz. Lo haríamos así:
int matriz[4][3] = {
{7, 8, 9},
{4, 5, 6},
{1, 2, 3},
{0, 0, 0}
};
Para acceder a un valor, tanto en una matriz creada con vector como con arrays, lo hacemos de la manera habitual. Por ejemplo:
int matriz[5][20];
matriz[0][12] = 100;
cout << matriz[0][12] << endl;
int fila = 3;
int columna = 5;
cin >> matriz[fila][columna];
cout << matriz[fila][columna] << endl;
Añadir nuevo comentario