Kopiowanie wektora to proces tworzenia nowego wektora zawierającego te same elementy, co wektor oryginalny. W tym artykule poznamy różne sposoby kopiowania wektora w C++.
Najbardziej wydajną i najłatwiejszą metodą kopiowania wektora w C++ jest użycie operator przypisania (=) . Rzućmy okiem na przykład:
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; }
Wyjście
2 4 1 5 3
C++ udostępnia także więcej metod kopiowania wektora do innego wektora. Są one następujące:
protokół udp
Spis treści
dostępne
- Korzystanie z konstruktora wektorów
- Używanie funkcji kopiowania()
- Korzystanie z wektora przypisania()
- Korzystanie z funkcji wstawki wektorowej()
- Używanie wektora push_back()
Korzystanie z konstruktora wektorów
Innym łatwym sposobem skopiowania wektora w momencie deklaracji jest przekazanie oryginalnego wektora do konstruktora kopiującego innego wektor.
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; }
Wyjście
2 4 1 5 3
Używanie funkcji kopiowania()
The kopia() funkcja to nasza podstawowa metoda kopiowania danych w C++. Może kopiować jeden wektor do drugiego za pomocą ich iteratorów. Co więcej kopia_jeśli() wariant tej funkcji może także wykonać selektywne kopiowanie na podstawie jednoargumentowej funkcji predykatu.
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; }
Wyjście
2 4 1 5 3
Wyjaśnienie: Musimy skorzystać back_insertor() funkcję, jeśli podczas deklaracji nie określiliśmy rozmiaru wektora. Jeśli mamy już wystarczająco dużo miejsca to musimy przejść v2.rozpocznij() Zamiast.
Korzystanie z wektora przypisania()
The wektor przypisz() metoda jest równoważna metodzie operatora =, ale wymaga iteratora do wektora, który ma zostać skopiowany.
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; }
Wyjście
2 4 1 5 3
Korzystanie z wstawki wektorowej()
The wstawka wektorowa() metoda udostępnia wersję, która może skopiować wszystkie elementy z podanego zakresu. Można tego użyć do skopiowania całego wektora do innego w podobny sposób, jak w przypadku metody przypisania().
sieciowy system operacyjnyC++
#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; }
Wyjście
2 4 1 5 3
Korzystanie z wektora push_back()
Wciśnij wszystkie elementy pierwszego wektora do drugiego wektora za pomocą wektor push_back() metoda. Pętla może polegać na iteracji po pierwszym wektorze.
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; }
Wyjście
2 4 1 5 3
Ta metoda zapewnia większą kontrolę, ponieważ możemy również zmodyfikować element, jeśli zajdzie taka potrzeba, przed kopiowaniem.