Saltar al contenido
MundoCursos

¿Cómo imprimir una matriz en C++?

¿Ya sabes usar las matrices? Es posible que lo que te quede por aprender es cómo imprimir una matriz en C++. No se trata de lo más utilizado, ni tampoco del tipo de tema que se explica más a fondo en algunos cursos.

Por ello, vamos a explicarte paso a paso cómo tienes que imprimir las matrices para que puedas recurrir a ello cuando lo necesites. Pero antes, ¡una aclaración! “Imprimir” en C++ o en cualquier lenguaje de programación, significa imprimir en pantalla. ¡Así que no necesitas impresora!

¿Cómo imprimir matriz en C++ usando un bucle?

Como verás, vamos a compartir contigo varias técnicas para imprimir las matrices de C++ que también puedes utilizar en el caso de arrays.

Este primer sistema se basa en el uso de un bucle “for” que está basado en el rango y que aporta un toque más fresco respecto al uso clásico de esta función.

En su aprovechamiento se utiliza un sistema de elementos específicos que se pueden personalizar, como «auto i» para usar el valor como referencia o «auto const& i» para la referencia const.

Se trata de un sistema rápido y sencillo que ayuda a aliviar carga de trabajo y poder terminar los procesos con mayor facilidad.

El código que tienes que utilizar es como este:

#include <iostream>

#include <vector>

using std::cout; using std::cin;

using std::endl; using std::vector;

using std::copy;

int main()

{

    vector<int> arr = {10,9,8,7,6,5,4,3,2,1};

    for(auto const& value : arr){

        cout << value << "; ";
    }
    cout << endl;

    return EXIT_SUCCESS;
}

La impresión que obtendrás como resultado será la siguiente:

10; 9; 8; 7; 6; 5; 4; 3; 2; 1;
¿Te gustaría aumentar tus conocimientos en C++?

Está claro que ser autodidacta es una buena cualidad que podría tener cualquier programador.

Y para acelerar al máximo tu aprendizaje, te recomendamos ver esta guía con las mejores clases de C++. Descubre el mejor curso para ti.

¿Cómo imprimir matriz de C++ con el algoritmo for_each?

Gracias a la biblioteca STL puedes recurrir a muchos métodos interesantes para realizar funciones en C++ que te sacarán de más de un apuro. Entre otras, puedes acceder a “for_each”, un algoritmo que se ocupa de ir elemento por elemento del rango especificado para darles la función de objeto. Esto permitirá imprimir tal y como verás en el código:

#include <iostream>

#include <vector>

#include <iterator>

#include<algorithm>

using std::cout; using std::cin;

using std::endl; using std::vector;

using std::copy;

void custom_func(int a){
        cout << a << "; ";
    }

int main()

{
    vector<int> arr = {10,9,8,7,6,5,4,3,2,1};

    for_each(arr.begin(), arr.end(), custom_func);

    cout << endl;

    return EXIT_SUCCESS;
}

El resultado volverá a ser la impresión de lo siguiente en pantalla:

10; 9; 8; 7; 6; 5; 4; 3; 2; 1;

Para este caso concreto, de lo que te beneficias es de una función personalizada “custom_func”. Luego utilizas el sistema “for_each” tal y como te hemos indicado y procede a la actuación sobre los elementos.

¿Cómo imprimir en C++ usando el algoritmo copy?

Volvemos al uso de <algorithm> con la biblioteca STL y sus muchas virtudes. Aquí vamos a usar el algoritmo “copy”, el cual también lo vamos a aplicar con el uso de rango. El código que usaremos es el siguiente:

#include <iostream>

#include <vector>

#include <iterator>

#include <algorithm>

using std::cout; using std::cin;

using std::endl; using std::vector;

using std::copy;

int main()

{
    vector<int> arr = {10,9,8,7,6,5,4,3,2,1};

    copy(arr.begin(), arr.end(),

          std::ostream_iterator<int>(cout,"; "));

    cout << endl;

    return EXIT_SUCCESS;
}

Y el resultado, una vez más, será:

10; 9; 8; 7; 6; 5; 4; 3; 2; 1;

Lo que habremos hecho habrá sido convirtiendo el inicio y final de rango en los dos primeros parámetros que tiene el código. Además, ponemos un tercer parámetro que servirá para que el contenido de la matriz salga a modo de salida.

Hay un añadido curioso, que se trata de usar este mismo método, pero haciendo que los elementos que contiene la matriz salgan de una forma invertida. El código será, en este caso:

#include <iostream>

#include <vector>

#include <iterator>

#include <algorithm>

using std::cout; using std::cin;

using std::endl; using std::vector;

using std::copy;

int main()

{
    vector<int> arr = {10,9,8,7,6,5,4,3,2,1};

    copy(arr.rbegin(), arr.rend(),

          std::ostream_iterator<int>(cout,"; "));

    cout << endl;

    return EXIT_SUCCESS;
}

Pero el resultado variará y se mostrará de la siguiente manera:

1; 2; 3; 4; 5; 6; 7; 8; 9; 10;

Lo que hemos hecho no es tan complejo. El secreto está en cambiar los indicadores del sistema copy() por el uso de las funciones «rbegin» y «rend». Eso se ocupará de darle la vuelta al orden del resultado.

¿Cómo imprimir matriz en C++ usando un loop?

Si los códigos anteriores te parecen demasiado complejos o largos, es posible introducir un cambio que hará que se acorten. Para ello necesitarás un loop con un código como:

#include <iostream>

using namespace std;

int arr [10] = {12, 14, 16, 18, 20, 22, 24, 26, 28, 30};

int main ()

{
  for (int i=0 ; i<10 ; i++ )

  {

    cout << arr[i]<<"; ";

  }

  return 0;
}

En este ejemplo introducimos un array largo de 10 y repartimos los elementos en sus índices. La entrada del loop facilita que sea posible darle un límite exacto respecto al que tiene el array en el código.

Dentro de ese mismo código hemos introducido el «cout» con el «endl» y se ha marcado que se muestre cada elemento de la matriz entre cero hasta que el sistema se encuentre ante un false que detendrá la impresión.

¿Cómo imprimir una matriz 2D en C++?

Este es otro de los casos posibles para imprimir matrices en C++. Lo que buscamos en este caso es hacer impresión de una matriz de dos dimensiones. Para ello, tienes que poner los valores correspondientes en los índices siempre de izquierda a derecha y de arriba abajo.

El código queda de esta forma:

#include <iostream>

using namespace std;

int main()

{

    int two_D_arr[2][2]={{2,4},{6,8}};

    cout<<"value at 0,0 = "<<two_D_arr[0][0]<<endl;

    cout<<"value at 0,1 = "<<two_D_arr[0][1]<<endl;

    cout<<"value at 1,0 = "<<two_D_arr[1][0]<<endl;

    cout<<"value at 1,1 = "<<two_D_arr[1][1]<<endl;

    return 0;

 }

Se puede apreciar que se trata de un código sencillo. Partes de una matriz tipo 2×2 y luego añades los valores correspondientes al array. Después de eso ya puedes imprimir y ver cómo han quedado los valores establecidos en sus índices. La visualización aparecerá de esta forma:

value at 0,0 = 2
value at 0,1 = 4
value at 1,0 = 6
value at 1,1 = 8