jueves, 24 de septiembre de 2015

STL Vector en Visual Studio 2013


Main.cpp

//Explorando el tamaño y capacidad de un vector

#include <iostream>
#include <vector>

using namespace std;
using std::vector;

//funcion template que muestra el tamaño y la capacidad de cualquier vector
template<class T>
void infoLista(const vector<T> &v)
{
 cout << "Capacidad del contenedor: " << v.capacity()
  << " Tamanio del contenedor: " << v.size() << endl;
}


int main()
{
 //creacion del vector basico
 vector<double> datos;
 infoLista(datos);

 datos.reserve(100);

 cout << "Despues de llamar a reserve(100): " << endl;
 infoLista(datos);

 //crea un vector con 10 elementos y los inicializa
 vector<int> numeros(10, -1);

 cout << "Los valores iniciales son: ";

 //se puede usar el rango basado en vector, usando for mejorados
 for (auto n : numeros)
 {
  cout << " " << n;
 }

 cout << endl << endl;

 //observar como se agregan los elementos que afectan la capacidad de incremento
 auto viejaCapacidad = numeros.capacity();
 auto nuevaCapacidad = viejaCapacidad;

 infoLista(numeros);

 for (int i{}; i < 1000; i++)
 {
  numeros.push_back(2 * i);
  nuevaCapacidad = numeros.capacity();

  //solo la salida cuando la capacidad incrementa
  if (viejaCapacidad < nuevaCapacidad)
  {
   viejaCapacidad = nuevaCapacidad;
   infoLista(numeros);
  }
 }

 system("pause");
}

No hay comentarios:

Publicar un comentario