Cómo imprimir el contenido de un vector en C++
-
Utilice el bucle
for
con notación de acceso a elementos para imprimir contenidos vectoriales - Usar el bucle basado en el rango con la notación de acceso al elemento para imprimir el contenido del vector
-
Usa
std::copy
para imprimir el contenido del vector -
Usa
std::for_each
para imprimir los contenidos del vector
Este artículo presentará varios métodos sobre cómo imprimir el contenido de los vectores en C++.
Utilice el bucle for
con notación de acceso a elementos para imprimir contenidos vectoriales
Se puede acceder a los elementos vector
con el método at()
o el operador []
. En esta solución, demostramos ambos e imprimimos el contenido con el flujo cout
. En primer lugar, inicializamos la variable vectorial con números enteros arbitrarios y luego hacemos un bucle a través de sus elementos
uno por uno para imprimir la corriente.
#include <iostream>
#include <vector>
using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;
int main() {
vector<int> int_vec = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for (size_t i = 0; i < int_vec.size(); ++i) {
cout << int_vec.at(i) << "; ";
}
cout << endl;
for (size_t i = 0; i < int_vec.size(); ++i) {
cout << int_vec[i] << "; ";
}
cout << endl;
return EXIT_SUCCESS;
}
Resultado:
1; 2; 3; 4; 5; 6; 7; 8; 9; 10;
1; 2; 3; 4; 5; 6; 7; 8; 9; 10;
Usar el bucle basado en el rango con la notación de acceso al elemento para imprimir el contenido del vector
La solución anterior es relativamente sencilla, pero parece bastante verborreica. El C++ contemporáneo proporciona formas más flexibles de expresar las iteraciones, una de ellas es el bucle basado en el rango. Se considera más legible cuando los bucles hacen operaciones relativamente sin esfuerzo y no necesitan ser paralelizados.
#include <iostream>
#include <vector>
using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;
int main() {
vector<int> int_vec = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for (const auto &item : int_vec) {
cout << item << "; ";
}
cout << endl;
return EXIT_SUCCESS;
}
Usa std::copy
para imprimir el contenido del vector
Un método bastante avanzado para hacer la iteración de vectores y las operaciones de salida en una sola frase es llamar a la función copy
, definida en la biblioteca <algorithm>
. Este método toma un rango de vectores especificado con iteradores, y como tercer argumento, pasamos ostream_iterator
para redirigir el contenido del rango al flujo cout
.
#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>
using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::ostream_iterator;
using std::vector;
int main() {
vector<int> int_vec = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
copy(int_vec.begin(), int_vec.end(), ostream_iterator<int>(cout, "; "));
cout << endl;
return EXIT_SUCCESS;
}
Usa std::for_each
para imprimir los contenidos del vector
Otro algoritmo STL para hacer las operaciones de iteración y salida en una sola sentencia es for_each
. Este método puede aplicar un determinado objeto de función a cada elemento del rango especificado, lo cual es una poderosa herramienta para tener. En este caso, pasamos la expresión lambda
, que imprime los elementos al flujo de salida.
#include <algorithm>
#include <iostream>
#include <vector>
using std::cin;
using std::cout;
using std::endl;
using std::for_each;
using std::vector;
int main() {
vector<int> int_vec = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for_each(int_vec.begin(), int_vec.end(),
[](const int& n) { cout << n << "; "; });
cout << endl;
return EXIT_SUCCESS;
}
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