Vektoriaus kopijavimas yra naujo vektoriaus, kuriame yra tie patys elementai, kaip originalus vektorius, kūrimo procesas. Šiame straipsnyje mes išmoksime įvairių būdų, kaip nukopijuoti vektorių C ++.
Veiksmingiausias ir lengviausias būdas nukopijuoti vektorių C ++ yra naudojant priskyrimo operatorius (=) . Pažvelkime į pavyzdį:
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; }
Išvestis
2 4 1 5 3
C ++ taip pat pateikia daugiau metodų, kaip nukopijuoti vektorių į kitą vektorių. Jie yra šie:
Turinio lentelė
- Naudojant vektorių konstruktorių
- Naudojant kopiją ()
- Naudojant vektoriaus priskyrimą ()
- Naudojant „Vector“ intarpą ()
- Naudojant „Vector Push_back“ ()
Naudojant vektorių konstruktorių
Kitas paprastas būdas nukopijuoti vektorių deklaracijos metu yra perduodant originalų vektorių kitam kopijavimo konstruktoriui vektorius.
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; }
Išvestis
2 4 1 5 3
Naudojant kopiją ()
kopijuoti () Funkcija yra mūsų būdas nukopijuoti duomenis C ++. Tai gali nukopijuoti vieną vektorių į kitą naudodamas jų iteratorius. Be to copy_if () Šios funkcijos variantas taip pat gali atlikti selektyvią kopiją, remdamasis Unary predikato funkcija.
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; }
Išvestis
2 4 1 5 3
Paaiškinimas: Mes turime naudoti back_insertor () Funkcija, jei deklaracijos metu mes nenurodėme vektoriaus dydžio. Jei jau turėjome pakankamai vietos, turime praeiti v2.begin () vietoj.
Naudojant vektoriaus priskyrimą ()
vektoriaus priskyrimas () Metodas yra lygus = operatoriaus metodas, tačiau jam reikia nukopijuoti vektoriaus iteratorių.
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; }
Išvestis
2 4 1 5 3
Naudojant „Vector“ intarpą ()
vektoriaus įdėklas () Metodas pateikia versiją, kuri gali nukopijuoti visus elementus iš nurodyto diapazono. Tai gali būti naudojama norint nukopijuoti visą vektorių į kitą panašiu būdu, kaip ir paskirties () metodas.
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; }
Išvestis
2 4 1 5 3
Naudojant „Vector Push_back“ ()
Stumkite visus pirmojo vektoriaus elementus į antrąjį vektorių naudodami „Vector Push_back“ () metodas. Kilpa gali būti kartojama per pirmąjį vektorių.
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; }
Išvestis
2 4 1 5 3
Šis metodas suteikia daugiau valdymo, nes prieš kopijuodami mes taip pat galime modifikuoti elementą, jei reikia.