Različiti načini kopiranja vektora u C ++
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:
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 ; }
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.