logo

Različni načini kopiranja vektorja v C ++

Kopiranje vektorja je postopek ustvarjanja novega vektorja, ki vsebuje enake elemente kot originalni vektor. V tem članku se bomo naučili različnih načinov kopiranja vektorja v C ++.

Najučinkovitejša in najlažja metoda za kopiranje vektorja v C ++ je z uporabo Operator dodelitve (=) .  Oglejmo si primer:



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

Izhod
2 4 1 5 3 

C ++ ponuja tudi več metod za kopiranje vektorja v drug vektor. So takšni:

Tabela vsebine

Z uporabo vektorskega konstruktorja

Drug enostaven način za kopiranje vektorja v času deklaracije je s prenašanjem originalnega vektorja na konstruktor kopij drugega vektor.



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

Izhod
2 4 1 5 3 

Uporaba kopije ()

The kopiraj () Funkcija je naša metoda Go-to za kopiranje podatkov v C ++. Enega vektorja lahko kopira v drugega s svojimi iteratorji. Poleg tega copy_if () Varianta te funkcije lahko izvede tudi selektivno kopijo na podlagi funkcije UNAY predikata.

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

Izhod
2 4 1 5 3 

Pojasnilo: Uporabiti moramo Back_inSertor () Funkcija, če med deklaracijo nismo določili velikosti vektorja. Če smo že imeli dovolj prostora v2.begin () namesto tega.

Uporaba vektorske dodelitve ()

The vektorska dodelitev () Metoda je enakovredna metodi = operater, vendar potrebuje iterator do vektorja, ki ga je treba kopirati.



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

Izhod
2 4 1 5 3 

Uporaba vektorskega vstavka ()

The vektorski vložek () Metoda ponuja različico, ki lahko kopira vse elemente iz danega območja. To lahko uporabite za kopiranje celotnega vektorja na drugega na podoben način kot metoda Assign ().

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

Izhod
2 4 1 5 3 

Uporaba vektorskega push_back ()

Vse elemente prvega vektorja potisnite v drugi vektor z uporabo vektor push_back () metoda. Zanka je lahko ponovitev skozi prvi 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; } 

Izhod
2 4 1 5 3 

Ta metoda zagotavlja več nadzora, saj lahko pred kopiranjem spremenimo tudi element, če je potrebno.