logo

Rôzne spôsoby skopírovania vektora v C ++

Kopírovanie vektora je proces vytvárania nového vektora, ktorý obsahuje rovnaké prvky ako pôvodný vektor. V tomto článku sa dozvieme rôzne spôsoby skopírovania vektora v C ++.

koľko miest je v nás

Najúčinnejšou a najjednoduchšou metódou na kopírovanie vektora v C ++ je použitie operátor priradenia (=) .  Pozrime sa na príklad:



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

Výstup
2 4 1 5 3 

C ++ tiež poskytuje viac metód na kopírovanie vektora do iného vektora. Sú takto:

Tabuľka obsahu

Pomocou vektorového konštruktora

Ďalším jednoduchým spôsobom, ako skopírovať vektor v čase vyhlásenia, je odovzdanie pôvodného vektora do konštruktora kópie iného vektor.



veľkosť lyžičky
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; } 

Výstup
2 4 1 5 3 

Pomocou copy ()

Ten copy () Funkcia je naša metóda na kopírovanie údajov v C ++. Môže skopírovať jeden vektor do druhého pomocou svojich iterátorov. Navyše copy_if () Variant tejto funkcie môže tiež vykonať selektívnu kópiu na základe funkcie Unary predikátu.

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

Výstup
2 4 1 5 3 

Vysvetlenie: Musíme použiť back_insertor () Funkcia Ak sme počas vyhlásenia nezadali veľkosť vektora. Keby sme už mali dostatok priestoru, musíme prejsť v2.Begin () namiesto toho.

Pomocou vektorového priradenia ()

Ten vektor priradenie () Metóda je rovnocenná s metódou = operátor, ale potrebuje iterátor na skopírovanie vektora.



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

Výstup
2 4 1 5 3 

Pomocou vektorovej inzercie ()

Ten Vektorová vložka () Metóda poskytuje verziu, ktorá môže kopírovať všetky prvky z daného rozsahu. Toto sa dá použiť na kopírovanie celého vektora do iného podobným spôsobom ako metóda priradenia ().

znak na reťazec
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; } 

Výstup
2 4 1 5 3 

Pomocou Vector Push_back ()

Zatlačte všetky prvky prvého vektora do druhého vektora pomocou vektor push_back () metóda. Slučka môže byť na iteráciu cez prvý 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; } 

Výstup
2 4 1 5 3 

Táto metóda poskytuje väčšiu kontrolu, pretože v prípade potreby môžeme pred kopírovaním zmeniť aj prvok.