Copiar un vector es el proceso de crear un nuevo vector que contiene los mismos elementos que el vector original. En este artículo aprenderemos diferentes formas de copiar un vector en C++.
El método más eficaz y sencillo para copiar un vector en C++ es utilizar operador de asignación (=) . Echemos un vistazo a un ejemplo:
C++
#include using namespace std; int main() { vector<int> v1 = {2 4 1 5 3}; // Assigning the vector v1 to vector v2 vector<int> v2 = v1; for (auto i : v2) cout << i << ' '; return 0; }
Producción
2 4 1 5 3
C++ también proporciona más métodos para copiar un vector en otro vector. Son los siguientes:
Tabla de contenido
- Usando el constructor de vectores
- Usando copiar()
- Usando asignación de vectores()
- Usando inserción de vector()
- Usando el vector push_back()
Usando el constructor de vectores
Otra manera fácil de copiar un vector en el momento de la declaración es pasando el vector original al constructor de copia de otro vector.
C++
#include using namespace std; int main() { vector<int> v1 = {2 4 1 5 3}; // Copying vector v1 into vector v2 vector<int> v2(v1); for (auto i : v2) cout << i << ' '; return 0; }
Producción
2 4 1 5 3
Usando copiar()
El Copiar() La función es nuestro método de referencia para copiar datos en C++. Puede copiar un vector a otro usando sus iteradores. Además el copiar_si() La variante de esta función también puede realizar una copia selectiva sobre la base de una función de predicado unario.
C++#include using namespace std; int main() { vector<int> v1 = {2 4 1 5 3}; vector<int> v2; // Copying vector v1 into vector v2 copy(v1.begin() v1.end() back_inserter(v2)); for (auto i : v2) cout << i << ' '; return 0; }
Producción
2 4 1 5 3
Explicación: tenemos que usar insertador_back() función si no hemos especificado el tamaño del vector durante la declaración. Si ya hemos tenido suficiente espacio entonces tenemos que pasar v2.comenzar() en cambio.
Usando asignación de vectores()
El asignación de vectores() El método es equivalente al método del operador = pero necesita que se copie el iterador del vector.
C++
#include using namespace std; int main() { vector<int> v1 = {2 4 1 5 3}; vector<int> v2; // Copying the vector v1 into vector v v2.assign(v1.begin() v1.end()); for (auto i : v2) cout << i << ' '; return 0; }
Producción
2 4 1 5 3
Usando inserción de vectores()
El inserción vectorial() El método proporciona una versión que puede copiar todos los elementos del rango dado. Esto se puede usar para copiar el vector completo a otro de manera similar al método asignar().
C++#include using namespace std; int main() { vector<int> v1 = {2 4 1 5 3}; vector<int> v2; // Copying vector v1 into vector v2 v2.insert(v2.begin() v1.begin() v1.end()); for (auto i : v2) cout << i << ' '; return 0; }
Producción
2 4 1 5 3
Usando Vector push_back()
Empuje todos los elementos del primer vector al segundo vector usando vector push_back() método. Un bucle puede consistir en iterar a través del primer vector.
mapeo en mecanografiadoC++
#include using namespace std; int main() { vector<int> v1 = {2 4 1 5 3}; vector<int> v2; // Copying vector v1 into vector v2 for (auto i : v1) v2.push_back(i); for (auto i : v2) cout << i << ' '; return 0; }
Producción
2 4 1 5 3
Este método proporciona más control ya que también podemos modificar el elemento si es necesario antes de copiarlo.