logo

Forskellige måder at kopiere en vektor i C ++

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

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.