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

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

王林
王林Original
2024-06-05 11:51:57804Durchsuche

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

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!

Stellungnahme:
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