Es gibt drei Möglichkeiten, einen C++-STL-Container zu kopieren: Verwenden Sie den Kopierkonstruktor, um den Inhalt des Containers in einen neuen Container zu kopieren. Verwenden Sie den Zuweisungsoperator, um den Inhalt eines Containers in den Zielcontainer zu kopieren. Verwenden Sie den Algorithmus std::copy, um die Elemente im Container zu kopieren.
So kopieren Sie einen C++-STL-Container
Vorwort
Die C++-Standardvorlagenbibliothek (STL) bietet eine Reihe von Containerklassen zum Speichern und Verwalten von Daten. Das Kopieren dieser Container ist oft unerlässlich, beispielsweise wenn wir Elemente zu einem anderen Container hinzufügen müssen oder wenn wir den Inhalt des Containers beibehalten müssen, bevor wir Argumente an eine Funktion übergeben.
Verwenden Sie den Kopierkonstruktor
STL-Container bietet einen Kopierkonstruktor, der den Inhalt des Containers in einen neuen Container kopiert. Die Syntax des Kopierkonstruktors lautet wie folgt:
std::vector<int> v1{1, 2, 3}; std::vector<int> v2(v1); // 复制 v1 到 v2
Verwendung des Zuweisungsoperators
Der Zuweisungsoperator (=) kann auch zum Kopieren von Containern verwendet werden. Der Zuweisungsoperator kopiert den Inhalt des Quellcontainers in den Zielcontainer und verwirft alle vorhandenen Elemente im Zielcontainer. Die Syntax des Zuweisungsoperators lautet wie folgt:
std::vector<int> v1{1, 2, 3}; std::vector<int> v2; v2 = v1; // 复制 v1 到 v2
Mit dem Algorithmus std::copy
std::copy können Elemente in einem Container kopiert werden. Die Syntax von std::copy lautet wie folgt:
std::vector<int> v1{1, 2, 3}; std::vector<int> v2(v1.size()); std::copy(v1.begin(), v1.end(), v2.begin()); // 复制 v1 到 v2
Eigentlicher Fall
Angenommen, wir haben einen Vektorcontainer mit Studenteninformationen:
struct Student { int id; std::string name; }; std::vector<Student> students = { {1, "Alice"}, {2, "Bob"}, {3, "Charlie"}, };
Um diesen Container zu kopieren, können wir den Kopierkonstruktor verwenden:
std::vector<Student> students_copy(students);
oder verwenden das Zuweisungsoperationssymbol:
std::vector<Student> students_copy; students_copy = students;
Jetzt enthält Students_copy die gleichen Studenteninformationen wie Students.
Das obige ist der detaillierte Inhalt vonWie kopiere ich einen C++-STL-Container?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!