logo

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:



bináris fa inorder bejárás
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 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áncra
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.