viernes, 4 de abril de 2014

C++ - Contenedores: Vector

C++ / C++11
Vector


Hola de nuevo. Empezaré una serie de entradas donde se verán algunos aspectos de C++11, y otros temas de C++, tales como contenedores de datos, threads, etc.
En este caso, veremos el vector.



Vector

Este contenedor, incluído en la librería <vector>, sirve para guardar ordenado cualquier tipo de dato. Para ello, se declara con un template. Al igual que la mayoría de contenedores de la STL, tiene las función .size(), para saber la cantidad de elementos que contiene, además de el operator[], para acceder a un determinado elemento, y varias formas de insertar datos, tales como insert() y push_back(). Esta última será la que use aquí. También tiene la función .erase(), a la que se le habrá de pasar un iterator del vector, que podemos conseguir con .begin() y .end().
Para aclarar todo esto, aquí va un ejemplo:


#include <vector>
#include <iostream>

using namespace std;

int main(){
    vector<int> v; //Declaración de 'v' como vector de enteros (int)

    v.push_back(102); //Elemento 1
    v.push_back(66); //Elemento 2

    cout << v[0] << endl; //Mostramos el elemento 1

    v.erase(v.begin()); //Borramos el elemento 1

    cout << v[0] << endl; //Mostramos el elemento 2,
                           //ya que hemos borrado el 1

    cin.get(); //Pausa el programa
    return 0;
}

En el caso de que quisieramos borrar, por ejemplo, el elemento 5, pondríamos v.erase( v.begin() + 5 );. Con esto, le sumamos 5 al iterator, que es lo que devuelve v.begin(), dando como resultado el quinto elemento.

2 comentarios:

  1. Hola como estas quisiera saber como se puede representar estos vectores de forma bidimensional y darlos ya definidos o creados para solo consultar o recorrer su contenido y luego modificarlos ....
    gracias

    ResponderEliminar
    Respuestas
    1. El vector es unidimensional, pero puedes hacer un vector de vectores:

      vector< vector > v;

      Eliminar