logo

Diferite moduri de a copia un vector în C ++

Copierea unui vector este procesul de creare a unui nou vector care conține aceleași elemente ca vectorul original. În acest articol vom învăța diferite modalități de a copia un vector în C ++.

generează un număr aleator în java

Cea mai eficientă și mai ușoară metodă pentru a copia un vector în C ++ este prin utilizarea operator de atribuire (=) .  Să aruncăm o privire la un exemplu:



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; } 

Ieșire
2 4 1 5 3 

C ++ oferă, de asemenea, mai multe metode pentru a copia un vector într -un alt vector. Sunt următorii:

Tabel de conținut

Folosind constructor vectorial

O altă modalitate ușoară de a copia un vector la momentul declarației este prin trecerea vectorului original la constructorul de copiere al altuia vector.



nor de primăvară
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; } 

Ieșire
2 4 1 5 3 

Folosind copie ()

copie() Funcția este metoda noastră de a copia date în C ++. Poate copia un vector în altul folosind iteratorii lor. Mai mult decât atât copy_if () Varianta acestei funcții poate efectua, de asemenea, o copie selectivă pe baza unei funcții de predicat unar.

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; } 

Ieșire
2 4 1 5 3 

Explicaţie: Trebuie să folosim back_insertor () Funcție dacă nu am specificat dimensiunea vectorului în timpul declarației. Dacă am avut deja suficient spațiu, atunci trebuie să trecem v2.begin () în schimb.

Utilizarea vectorial ()

vector atribuit () Metoda este echivalentă cu metoda = operator, dar are nevoie de iterator la vectorul să fie copiat.



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; } 

Ieșire
2 4 1 5 3 

Folosind vector insert ()

vector insert () Metoda oferă o versiune care poate copia toate elementele din intervalul dat. Aceasta poate fi utilizată pentru a copia întregul vector pe altul într -un mod similar cu metoda atribuit ().

variabilă java variabilă
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; } 

Ieșire
2 4 1 5 3 

Folosind vector push_back ()

Împingeți toate elementele primului vector în al doilea vector folosind vector push_back () metodă. O buclă poate fi iterată prin primul 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; } 

Ieșire
2 4 1 5 3 

Această metodă oferă mai mult control, deoarece putem modifica și elementul, dacă este necesar, înainte de a copia.