logo

Diferents maneres de copiar un vector a C ++

Copiar un vector és el procés de creació d’un nou vector que conté els mateixos elements que el vector original. En aquest article aprendrem diferents maneres de copiar un vector a C ++.

El mètode més eficient i fàcil de copiar un vector a C ++ és mitjançant l'ús Operador d'assignació (=) .  Mirem un exemple:



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ó
2 4 1 5 3 

C ++ també proporciona més mètodes per copiar un vector en un altre vector. Són els següents:

Taula de contingut

Utilitzant el constructor vectorial

Una altra manera fàcil de copiar un vector en el moment de la declaració és passant el vector original al constructor de còpia d'un altre 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ó
2 4 1 5 3 

Utilitzant còpia ()

El còpia () La funció és el nostre mètode ideal per copiar dades a C ++. Pot copiar un vector a un altre mitjançant els seus iteradors. A més, copy_if () La variant d'aquesta funció també pot realitzar una còpia selectiva sobre la base d'una funció predicada unària.

java divideix la cadena per delimitador
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ó
2 4 1 5 3 

Explicació: Hem d’utilitzar back_insertor () Funció Si no hem especificat la mida del vector durant la declaració. Si ja hem tingut prou espai, hem de passar v2.Begin () en canvi.

Utilitzant vector assignació ()

El Vector Assign () El mètode equival al mètode = operador, però necessita que es copiï el iterador al 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ó
2 4 1 5 3 

Utilitzant vector inserció ()

El Vector Inserir () El mètode proporciona una versió que pot copiar tots els elements del rang donat. Es pot utilitzar per copiar tot el vector a un altre de manera similar al mètode Assigna ().

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ó
2 4 1 5 3 

Utilitzant vector push_back ()

Empenyeu tots els elements del primer vector al segon vector mitjançant l'ús vector push_back () Mètode. Un bucle pot ser iterar a través del primer vector.

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ó
2 4 1 5 3 

Aquest mètode proporciona més control, ja que també podem modificar l’element si cal abans de copiar.