// Este ejemplo muestra varias formas de crear una copia de un vector #include #include #include using namespace std; void mostrar(const string & mensaje, const vector & v) { cout << mensaje << " = [ "; for (int dato : v) cout << dato << " "; cout << "] size = " << v.size() << endl; } int main() { // Creamos un vector usando una "lista de inicializacion" vector v = {11, 22, 33, 44, 55, 66, 77, 88, 99}; mostrar("v", v); // Creamos un vector con una talla inicial, y lo rellenamos accediendo con [] hasta esa talla vector copia1(v.size()); mostrar("copia1 inicial", copia1); for (int i = 0; i < v.size(); i++) copia1[i] = v[i]; mostrar("copia1 final", copia1); // Creamos un vector vacio y usamos el metodo push_back, con el que la memoria // reservada va creciendo cuando se llena con la estrategia de duplicarla vector copia2; mostrar("copia2 inicial", copia2); for (int dato : v) copia2.push_back(dato); mostrar("copia2 final", copia2); // Utilizamos el constructor de copia para inicializar un vector a partir de otro vector copia3(v); mostrar("copia3", copia3); // Utilizamos el constructor para copiar el vector desde una posicion hasta otra vector izquierda(v.begin(), v.begin() + 3); mostrar("izquierda", izquierda); vector derecha(v.begin() + 3, v.end()); mostrar("derecha", derecha); vector derecha2(v.end() - 6, v.end()); mostrar("derecha2", derecha2); }