logo

Diferentes formas de copiar un vector en C++

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

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 mecanografiado
C++
#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.