Különböző módok a vektor másolásának C ++ -ban
A vektor másolása egy új vektor létrehozásának folyamata, amely ugyanazt az elemeket tartalmazza, mint az eredeti vektor. Ebben a cikkben különféle módszereket fogunk megtanulni a vektor másolatának a C ++ -ban.
A vektor másolatának leghatékonyabb és legegyszerűbb módszere a C ++ -ban a használatával Feladási operátor (=) - Vessen egy pillantást egy példára:
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 ; }
Kibocsátás
2 4 1 5 3
A C ++ további módszereket is biztosít a vektor másolatához egy másik vektorba. Ezek a következők:
Tartalomjegyzék
- Vektor -konstruktor használata
- A copy () használatával
- A Vector hozzárendelés használata ()
- A vector insert () használatával
- A vektor push_back () használatával
Vektor -konstruktor használata
A vektor másolatának egy másik egyszerű módja a deklaráció idején az, ha az eredeti vektorot átadja egy másik másolat -konstruktornak 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 ; }
Kibocsátás
2 4 1 5 3
A copy () használatával
A másolat() A funkció az adatok másolatának a C ++ -ban történő másolására. Az egyik vektorot másolhatja a másikra az iterátorok segítségével. Sőt a copy_if () Ennek a funkciónak a változata szelektív másolatot is végrehajthat egy Unary predikátum funkció alapján.
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 ; }
Kibocsátás
2 4 1 5 3
Magyarázat: Használnunk kell back_insertor () funkció, ha a nyilatkozat során nem adtuk meg a vektor méretét. Ha már volt elég helyünk, akkor át kell mennünk v2.begin () helyette.
A Vector hozzárendelés használata ()
A vektor hozzárendelés () A módszer egyenértékű a = operátor módszerrel, de szüksége van a másolásra a vektor iterátorához.
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 ; }
Kibocsátás
2 4 1 5 3
A vector insert () használatával
A vektor betét () A módszer olyan verziót biztosít, amely másolhatja az összes elemet a megadott tartományból. Ez felhasználható a teljes vektor másolatához hasonló módon, mint a hozzárendelés () módszer.
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 ; }
Kibocsátás
2 4 1 5 3
A vektor push_back () használatával
Tolja az első vektor összes elemét a második vektorba a használatával vektor push_back () módszer. Hurok lehet az első vektoron keresztül.
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 ; }
Kibocsátás
2 4 1 5 3
Ez a módszer nagyobb irányítást biztosít, mivel a másolás előtt szükség esetén módosíthatjuk az elemet.