Cómo imprimir un array en C++

Jinku Hu 12 octubre 2023
  1. Usar un bucle basado en el rango para imprimir un array
  2. Usar el algoritmo copy para imprimir un array
  3. Usar el algoritmo for_each para imprimir un array
Cómo imprimir un array en C++

Este artículo presentará los métodos de C++ para imprimir los elementos de un array para la consola.

Usar un bucle basado en el rango para imprimir un array

Este método es un típico for bucle sólo con un moderno estilo basado en el rango C++11. La iteración basada en el rango proporciona una opción para acceder a elementos con especificadores personalizados como: por referencia const (auto const& i), por valor (auto i), o por referencia de reenvío (auto&& i). Los beneficios de este método sobre el tradicional bucle for son la facilidad de uso y la legibilidad.

#include <iostream>
#include <vector>

using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::vector;

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

  for (auto const& value : arr) cout << value << "; ";
  cout << endl;

  return EXIT_SUCCESS;
}

Resultado:

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

Usar el algoritmo copy para imprimir un array

El método copy está implementado en la biblioteca STL <algorithm> y ofrece una poderosa herramienta para operaciones basadas en el rango. copy toma los iteradores de inicio y final del rango como los dos primeros parámetros. En este caso, pasamos un iterador de flujo de salida como tercer argumento para dar salida a los elementos array a la consola.

#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>

using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::vector;

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

  copy(arr.begin(), arr.end(), std::ostream_iterator<int>(cout, "; "));
  cout << endl;

  return EXIT_SUCCESS;
}

Resultado:

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

Como alternativa, podemos reimplantar fácilmente el ejemplo anterior para dar salida a los elementos del array en orden inverso. Modificamos los dos primeros argumentos del método copy() y los sustituimos por llamadas a la función rbegin/rend para conseguirlo.

#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>

using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::vector;

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

  copy(arr.rbegin(), arr.rend(), std::ostream_iterator<int>(cout, "; "));
  cout << endl;

  return EXIT_SUCCESS;
}

Resultado:

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

Usar el algoritmo for_each para imprimir un array

for_each es otro poderoso algoritmo de la biblioteca STL. Puede aplicar el objeto de función dado a cada elemento del rango. En este caso, definimos una expresión lambda como una variable custom_func y la pasamos al método for_each para que opere en los elementos del array dados.

#include <iostream>
#include <iterator>
#include <vector>

using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::vector;

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

  auto custom_func = [](auto &i) { cout << i << "; "; };
  for_each(arr.begin(), arr.end(), custom_func);
  cout << endl;

  return EXIT_SUCCESS;
}

Resultado:

1; 2; 3; 4; 5; 6; 7; 8; 9; 10;
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artículo relacionado - C++ Array