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
- Folosind copie ()
- Utilizarea vectorial ()
- Folosind vector insert ()
- Folosind vector push_back ()
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.