Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verwende ich die C++-Vorlagenbibliothek (STL)?

Wie verwende ich die C++-Vorlagenbibliothek (STL)?

WBOY
WBOYOriginal
2024-06-03 15:45:08313Durchsuche

Die C++ Standard Template Library (STL) besteht aus einer Reihe von Containern, Algorithmen und Iteratoren, die zum Verwalten und Bearbeiten von Daten verwendet werden können. STL-Container (z. B. Vektor, Liste, Karte und Set) bieten automatische Speicherverwaltung, Typsicherheit und verschiedene Vorgänge. STL-Algorithmen führen allgemeine Vorgänge wie Sortieren, Suchen und Transformationen aus. STL-Iteratoren ermöglichen das Durchlaufen von Elementen in einem Container. Verwenden Sie diese Funktionen zusammen, um effizienten, leicht zu wartenden Code zu schreiben, z. B. zum Sortieren und Gruppieren von Schülernoten.

Wie verwende ich die C++-Vorlagenbibliothek (STL)?

So verwenden Sie die C++-Standardvorlagenbibliothek (STL)

STL ist ein leistungsstarker Satz von Containern, Algorithmen und Iteratoren in der C++-Standardbibliothek, der Ihnen beim Schreiben von effizientem, wartbarem Code helfen kann. In diesem Tutorial erfahren Sie, wie Sie einige grundlegende Funktionen von STL verwenden.

STL-Container

STL-Container werden zum Speichern und Verwalten von Daten verwendet, ähnlich wie Arrays. Container bieten jedoch zusätzliche Funktionen wie:

  • Automatische Speicherverwaltung: STL-Container weisen automatisch Speicher für die Datenspeicherung zu und geben ihn frei, sodass keine manuelle Verwaltung erforderlich ist.
  • Typsicherheit: Container ermöglichen nur die Speicherung bestimmter Datentypen und gewährleisten so die Sicherheit und Zuverlässigkeit des Codes.
  • Mehrere Vorgänge: Container bieten eine Reihe von Vorgängen wie Einfügen, Löschen, Suchen und Sortieren.

Zu den häufig verwendeten STL-Containern gehören:

  • Vektor: Ein Array variabler Größe, das Datenelemente desselben Typs speichert.
  • Liste: Eine doppelt verknüpfte Liste, die schnelles Einfügen und Löschen unterstützt.
  • map: Ein assoziativer Container, der Schlüssel-Wert-Paare speichert und sie nach Schlüssel sortiert.
  • Set: Ein assoziativer Container, der eindeutige Schlüssel speichert und nach Schlüssel sortiert ist.

STL-Container erstellen

Um einen STL-Container zu erstellen, müssen Sie lediglich dessen Typ und Elementtyp angeben. Um beispielsweise einen Vektor zu erstellen, können Sie die folgende Syntax verwenden:

std::vector<int> myVector;

Verwenden von STL-Containern

Nachdem Sie einen STL-Container erstellt haben, können Sie ihn mithilfe einer Reihe von Vorgängen bearbeiten. Um beispielsweise ein Element zu einem Vektor hinzuzufügen, können Sie die Methode push_back() verwenden: push_back() 方法:

myVector.push_back(10);

要访问容器中的元素,您可以使用其索引,类似于数组:

int firstElement = myVector[0];

STL 算法

STL 算法提供了一组内置函数来执行对容器的常用操作,例如排序、查找和转换。例如,要对 vector 进行排序,可以使用 sort() 算法:

std::sort(myVector.begin(), myVector.end());

STL 迭代器

STL 迭代器允许您遍历容器中的元素。迭代器是一个指向容器中元素的对象,并且它可以指向容器中的下一个元素。例如,要遍历 vector,您可以使用 begin()end() 方法获取其迭代器,然后使用 ++ 运算符递增迭代器:

for (std::vector<int>::iterator it = myVector.begin(); it != myVector.end(); ++it) {
  std::cout << *it << std::endl;
}

实战案例

以下是如何在实际场景中使用 STL 的一个示例:

我们有一个学生成绩列表,我们需要根据成绩对他们进行排序和分组。我们可以使用 STL 的 mapsort 算法来实现此目的:

std::map<int, std::vector<std::string>> students;

// 添加学生和成绩
students[90] = {"John", "Mary"};
students[80] = {"Alice", "Bob"};

// 对成绩进行排序
std::map<int, std::vector<std::string>> sortedStudents(students.begin(), students.end());

// 分组学生
for (const auto& [grade, students] : sortedStudents) {
  std::cout << "Grade: " << grade << std::endl;
  for (const auto& student : students) {
    std::cout << "- " << student << std::endl;
  }
}

此代码创建了一个 map 来存储学生的分数和姓名,并使用 std::sort()rrreee

Um auf ein Element in einem Container zuzugreifen, können Sie seinen Index verwenden, ähnlich einem Array: 🎜 rrreee🎜🎜STL-Algorithmus🎜 🎜🎜STL-Algorithmen bieten eine Reihe integrierter Funktionen zum Ausführen allgemeiner Vorgänge an Containern, wie Sortieren, Suchen und Transformieren. Um beispielsweise einen Vektor zu sortieren, können Sie den Algorithmus sort() verwenden: 🎜rrreee🎜🎜STL-Iteratoren🎜🎜🎜STL-Iteratoren ermöglichen Ihnen, über die Elemente in einem Container zu iterieren. Ein Iterator ist ein Objekt, das auf ein Element in einem Container zeigt und auf das nächste Element im Container zeigen kann. Um beispielsweise über einen Vektor zu iterieren, können Sie die Methoden begin() und end() verwenden, um dessen Iterator abzurufen und ihn dann mit ++ zu erhöhen Operator-Iterator: 🎜rrreee🎜🎜Praktischer Fall🎜🎜🎜Hier ist ein Beispiel für die Verwendung von STL in einem realen Szenario: 🎜🎜Wir haben eine Liste der Noten der Schüler und müssen sie sortieren und gruppieren anhand ihrer Noten. Wir können die STL-Algorithmen map und sort verwenden, um dies zu erreichen: 🎜rrreee🎜Dieser Code erstellt eine Karte zum Speichern der Ergebnisse und Namen der Schüler und verwendet std: :sort() Sortiert die Karte. Anschließend wird die sortierte Karte durchlaufen und die Liste der Schüler für jede Gruppe ausgedruckt. 🎜

Das obige ist der detaillierte Inhalt vonWie verwende ich die C++-Vorlagenbibliothek (STL)?. 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