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
- Pomocou copy ()
- Pomocou vektorového priradenia ()
- Pomocou vektorovej inzercie ()
- Pomocou Vector Push_back ()
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čkyC++
#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ťazecC++
#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.