C++ Matrices

Enviado por jvilella el Lun, 23/09/2019 - 04:27

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;

 

Printer Friendly, PDF & Email

Añadir nuevo comentario

Texto sin formato

  • No se permiten etiquetas HTML.
  • Saltos automáticos de líneas y de párrafos.
  • Las direcciones de correos electrónicos y páginas web se convierten en enlaces automáticamente.