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:
bináris fa inorder bejárásC++
#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.
java bájttömb karakterláncraC++
#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.