yup, utilizando la expresión lambda (C++ 11) podemos imprimir en línea cada elemento de un contenedor STL para cout.
#include <iostream> // cout
#include <vector> // vector
#include <algorithm> // for_each
#include <iterator> // istream_iterator
using namespace std;
int main()
{
std::vector<int> v(10,2);
std::for_each(v.begin(), v.end(), [](int i)->void {std::cout << i <<endl;});
return 0;
}
Para leer los valores de "n" de CIN a vector,
int main()
{
std::vector<int> v;
int elementsToRead;
cin>>elementsToRead; // Number of elements to copy
// Reading from istream
std::istream_iterator<int> ii2(std::cin);
std::copy_n(ii2, elementsToRead, std::back_inserter(v));
// printing updated vector
std::for_each(v.begin(), v.end(), [](int i)->void {cout << i <<endl;});
return 0;
}
(o) mediante el uso de expresión Lambda
std::for_each(std::istream_iterator<int>(cin),std::istream_iterator<int>(),[&v](int i)->void { v.push_back(i);});
saber más acerca de expresión Lambda @What is a lambda expression in C++11?
Solución agregada para su edición a mi respuesta. –
@ Space_C0wb0y: editado mi edición. Por favor, compruebe. – nakiya
Enlace agregado para su segunda edición. –