logo

Różne sposoby kopiowania wektora w C++

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

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

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.