Kopiranje vektora je postupak stvaranja novog vektora koji sadrži iste elemente kao i izvorni vektor. U ovom ćemo članku naučiti različite načine kopiranja vektora u C ++.
Najučinkovitija i najlakša metoda kopiranja vektora u C ++ je upotrebom Operator dodjele (=) . Pogledajmo primjer:
dfa primjeriC++
#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; }
Izlaz
2 4 1 5 3
C ++ također pruža više metoda za kopiranje vektora u drugi vektor. Oni su sljedeći:
Tablica sadržaja
- Korištenje vektorskog konstruktora
- Korištenje kopiranja ()
- Korištenje vektorskog dodjele ()
- Korištenje Vector Insert ()
- Korištenje Vector Push_Back ()
Korištenje vektorskog konstruktora
Još jedan jednostavan način kopiranja vektora u vrijeme deklaracije je prenošenje izvornog vektora konstruktoru kopiranja drugog 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; }
Izlaz
2 4 1 5 3
Korištenje kopiranja ()
A kopirati() Funkcija je naša metoda za kopiranje podataka u C ++. Može kopirati jedan vektor u drugi koristeći svoje iteratore. Štoviše copys_if () Varijanta ove funkcije također može izvesti selektivnu kopiju na temelju Unar -ove predikatne funkcije.
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; }
Izlaz
2 4 1 5 3
Obrazloženje: Moramo koristiti back_insertor () Funkcija ako nismo naveli vektorsku veličinu tijekom deklaracije. Ako smo već imali dovoljno prostora, onda moramo proći v2.Begin () umjesto toga.
Korištenje vektorskog dodjele ()
A vektor dodjeljivanje () Metoda je ekvivalentna metodi = Operator, ali potreban mu je iterator vektora koji će se kopirati.
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; }
Izlaz
2 4 1 5 3
Korištenje Vector Insert ()
A Vektor Insert () Metoda pruža verziju koja može kopirati sve elemente iz zadanog raspona. Ovo se može koristiti za kopiranje cijelog vektora u drugi na sličan način kao i Metoda dodjeljivanja ().
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; }
Izlaz
2 4 1 5 3
Korištenje Vector Push_Back ()
Gurnite sve elemente prvog vektora u drugi vektor pomoću vector push_back () metoda. Petlja se može ponavljati kroz 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; }
Izlaz
2 4 1 5 3
Ova metoda pruža veću kontrolu jer i mi možemo izmijeniti element ako je potrebno prije kopiranja.