logo

Verschiedene Möglichkeiten zum Kopieren eines Vektors in C++

Beim Kopieren eines Vektors wird ein neuer Vektor erstellt, der dieselben Elemente wie der ursprüngliche Vektor enthält. In diesem Artikel lernen wir verschiedene Möglichkeiten kennen, einen Vektor in C++ zu kopieren.

Die effizienteste und einfachste Methode zum Kopieren eines Vektors in C++ ist die Verwendung von Zuweisungsoperator (=) .  Schauen wir uns ein Beispiel an:



Primzahlprogramm in Java
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; } 

Ausgabe
2 4 1 5 3 

C++ bietet außerdem weitere Methoden zum Kopieren eines Vektors in einen anderen Vektor. Sie lauten wie folgt:

Inhaltsverzeichnis

Verwenden des Vektorkonstruktors

Eine weitere einfache Möglichkeit, einen Vektor zum Zeitpunkt der Deklaration zu kopieren, besteht darin, den Originalvektor an den Kopierkonstruktor eines anderen zu übergeben 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; } 

Ausgabe
2 4 1 5 3 

Verwenden von copy()

Der Kopie() Die Funktion ist unsere bevorzugte Methode zum Kopieren von Daten in C++. Es kann mithilfe seiner Iteratoren einen Vektor in einen anderen kopieren. Darüber hinaus die copy_if() Eine Variante dieser Funktion kann auch eine selektive Kopie auf der Grundlage einer unären Prädikatsfunktion durchführen.

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

Ausgabe
2 4 1 5 3 

Erläuterung: Wir müssen nutzen back_insertor() Funktion, wenn wir die Vektorgröße bei der Deklaration nicht angegeben haben. Wenn wir schon genug Platz haben, müssen wir passen v2.begin() stattdessen.

Verwenden von Vector Assign()

Der Vektorzuweisung() Die Methode entspricht der =-Operatormethode, benötigt jedoch den Iterator für den zu kopierenden Vektor.



Kapselung in Java
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; } 

Ausgabe
2 4 1 5 3 

Verwenden von Vector insert()

Der Vektor einfügen() Die Methode stellt eine Version bereit, die alle Elemente aus dem angegebenen Bereich kopieren kann. Dies kann verwendet werden, um den gesamten Vektor auf ähnliche Weise wie die Methode „assign()“ in einen anderen zu kopieren.

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

Ausgabe
2 4 1 5 3 

Verwenden von Vector push_back()

Schieben Sie alle Elemente des ersten Vektors mit in den zweiten Vektor Vektor push_back() Verfahren. Eine Schleife kann darin bestehen, den ersten Vektor zu durchlaufen.

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

Ausgabe
2 4 1 5 3 

Diese Methode bietet mehr Kontrolle, da wir das Element bei Bedarf vor dem Kopieren auch ändern können.