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 JavaC++
#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
- Verwenden von copy()
- Verwenden von Vector Assign()
- Verwenden von vector insert()
- Verwenden von vector push_back()
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 JavaC++
#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.