// Programación en C++ para Ingenieros, Ed. Thomson Paraninfo, 2006
// Capitulo 6: Tipos Estructurados

// Programa que crea una vector de N enteros, lee sus valores
// y los escribe en ambos sentidos.

#include <iostream>
#include <vector>

using namespace std;

// Programa principal
int main ()
{
  // Crea una tabla de N enteros
  int i, N;
  cout << "Entra la longitud del vector: ";

  cin >> N;
  // Declaramos un vector v1 de N enteros
  vector <int> v1(N);

  // Declaramos un iterador para recorrer v1
  vector <int>::iterator it;

  // it apunta al primer elemento de v1
  it = v1.begin();

  // Leemos los N enteros de v1
  cout << "Entra los " << N << " enteros del vector: ";
  for( i = 0; i < N; i++ )
  {
    cin >> *it;
    it++;
  }

  // it apunta al primer elemento del vector
  it = v1.begin();

  // Se recorre el vector de izquierda a derecha
  cout << "Los elementos del vector hacia adelante son: " ;
  while ( it != v1.end() )
  {
    cout << *it << " ";
    it++;
  }
  cout << endl;

  // Se recorre el vector de derecha a izquierda
  cout << "Los elementos del vector hacia atras son: ";
  do
  {
    it--;
    cout << *it << " ";
  }while ( it != v1.begin() );
  cout << endl;

  return 0;
}