logo

Různé způsoby kopírování vektoru v C ++

Kopírování vektoru je proces vytváření nového vektoru, který obsahuje stejné prvky jako původní vektor. V tomto článku se naučíme různými způsoby, jak zkopírovat vektor v C ++.

Nejúčinnější a nejjednodušší metodou pro kopírování vektoru v C ++ je použití Operátor přiřazení (=) .  Pojďme se podívat na příklad:



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; } 

Výstup
2 4 1 5 3 

C ++ také poskytuje více metod pro kopírování vektoru do jiného vektoru. Jsou následující:

Obsah

Použití konstruktoru vektoru

Dalším snadným způsobem, jak zkopírovat vektor v době prohlášení, je předání původního vektoru kopírovacímu konstruktoru jiného 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; } 

Výstup
2 4 1 5 3 

Pomocí copy ()

The kopie() Funkce je naše metoda pro kopírování dat v C ++. Může zkopírovat jeden vektor do druhého pomocí svých iterátorů. Navíc copy_if () Varianta této funkce může také provádět selektivní kopii na základě funkce UNARY Predicate.

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; } 

Výstup
2 4 1 5 3 

Vysvětlení: Musíme použít back_insertor () Funkce, pokud jsme během deklarace neuvedli velikost vektoru. Pokud jsme již měli dostatek místa, musíme projít v2.begin () místo toho.

Používání vektoru přiřazení ()

The Vector Assoine () Metoda je ekvivalentní metodě = operátora, ale potřebuje, aby byl iterátor vektor zkopírován.



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; } 

Výstup
2 4 1 5 3 

Pomocí vektorového vložení ()

The Vložení vektoru () Metoda poskytuje verzi, která může zkopírovat všechny prvky z daného rozsahu. To lze použít k kopírování celého vektoru na jiný podobně jako metoda přiřazení ().

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; } 

Výstup
2 4 1 5 3 

Používání vektoru push_back ()

Použijte všechny prvky prvního vektoru do druhého vektoru Vector Push_back () metoda. Smyčka může být iterace přes první 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; } 

Výstup
2 4 1 5 3 

Tato metoda poskytuje větší kontrolu, protože v případě potřeby můžeme také upravit prvek před kopírováním.