Heim > Backend-Entwicklung > C++ > Wie kopiere ich einen C++-STL-Container?

Wie kopiere ich einen C++-STL-Container?

王林
Freigeben: 2024-06-05 11:51:57
Original
896 Leute haben es durchsucht

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.

如何复制C++ STL容器?

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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"},
};
Nach dem Login kopieren

Um diesen Container zu kopieren, können wir den Kopierkonstruktor verwenden:

std::vector<Student> students_copy(students);
Nach dem Login kopieren

oder verwenden das Zuweisungsoperationssymbol:

std::vector<Student> students_copy;
students_copy = students;
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage