Kopiering af en vektor er processen med at skabe en ny vektor, der indeholder de samme elementer som original vektor. I denne artikel lærer vi forskellige måder at kopiere en vektor i C ++.
Den mest effektive og nemmeste metode til at kopiere en vektor i C ++ er ved at bruge Tildelingsoperatør (=) . Lad os se på et eksempel:
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; }
Produktion
2 4 1 5 3
C ++ giver også flere metoder til at kopiere en vektor til en anden vektor. De er som følger:
Indholdstabel
- Brug af Vector -konstruktør
- Brug af kopi ()
- Ved hjælp af vektor tildeling ()
- Brug af vektorindsats ()
- Brug af vektor push_back ()
Brug af Vector -konstruktør
En anden nem måde at kopiere en vektor på erklæringen på er ved at føre den originale vektor til kopi -konstruktøren af en anden 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; }
Produktion
2 4 1 5 3
Brug af kopi ()
De kopi() Funktion er vores go-to-metode til at kopiere data i C ++. Det kan kopiere en vektor til en anden ved hjælp af deres iteratorer. Desuden copy_if () Variant af denne funktion kan også udføre selektiv kopi på grundlag af en unær predikatfunktion.
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; }
Produktion
2 4 1 5 3
Forklaring: Vi skal bruge back_insertor () Funktion, hvis vi ikke har specificeret vektorstørrelsen under erklæring. Hvis vi allerede har haft plads nok, skal vi passere v2.begin () i stedet.
Ved hjælp af vektor tildeling ()
De Vector tildeling () Metoden svarer til = operatørmetoden, men den har brug for iteratoren til vektoren, der skal kopieres.
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; }
Produktion
2 4 1 5 3
Brug af vektorindsats ()
De Vector Insert () Metode giver en version, der kan kopiere alle elementerne fra det givne interval. Dette kan bruges til at kopiere hele vektoren til en anden på en lignende måde som tildeling () -metoden.
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; }
Produktion
2 4 1 5 3
Brug af vektor push_back ()
Skub alle elementerne i den første vektor ind i den anden vektor ved hjælp af vektor push_back () metode. En løkke kan være for at iterere gennem den første vektor.
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; }
Produktion
2 4 1 5 3
Denne metode giver mere kontrol, da vi også kan ændre elementet om nødvendigt inden kopiering.