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
- Pomocí copy ()
- Používání vektoru přiřazení ()
- Pomocí vektorového vložení ()
- Používání vektoru push_back ()
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.