#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>
 
using namespace std;
// Leer enteros por entrada y llevarlos a un vector e imprimir la salida.
 
int main ()
{
     cout << "Nota: Si introduce menos de 10 numeros, los restantes tendran valor cero";
     cout << " hasta completar dicho tamanio." << endl;
     cout << endl << "Vaya introduciendo los numeros para un vector de tamanio 10.";
     cout << "Cuando se desee dejar de introducir numeros, presione <Ctrl+Z>." << endl << endl;
     vector<int> v(10);
     istream_iterator<int> in (cin); // Iterador de entrada
     ostream_iterator<int> out(cout, " "); // Iterador de salida, indica como quieres separar
     
     // El copy tiene 3 parametros, los dos primeros dos ITERADORES de la primera
     // estructura (origen) y otro ITERADOR para la estructura destino que nos dice
     // desde donde queremos empezar a copiar en la estructura destino
     copy (in, istream_iterator<int>(), v.begin()); 
     // PRimer iterador, la entrada cin, segundo la marca de fin de fichero EOF,
     // y tercero desde donde queremos copiar
     cout << endl << endl << "El vector creado con el algoritmo generico copy es:" << endl << endl << "( ";
     copy (v.begin(), v.end(), out);
     cout << ")" << endl << endl;
     
     system("pause");
     return 0;
}