Die C++-Standardbibliothek: Vollständiger Überblick und Beispiele

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Die C++-Standardbibliothek: Vollständiger Überblick



Die C++-Standardbibliothek (C++ Standard Library) ist eine leistungsstarke Sammlung von Klassen, Funktionen, Makros und Templates, die mit jedem C++-Compiler ausgeliefert wird. Sie bietet fertige Lösungen für die meisten typischen Aufgaben: von der Arbeit mit Datencontainern bis hin zu Netzwerkkommunikation und Multithreading. In diesem Artikel werden wir die Hauptkomponenten der Bibliothek analysieren, Codebeispiele zeigen und erklären, wie man ihre Möglichkeiten effektiv nutzt.



Hauptkomponenten der Standardbibliothek



Die Standardbibliothek ist in mehrere große Abschnitte unterteilt:



  • STL (Standard Template Library) — Container, Iteratoren, Algorithmen und Funktionsobjekte.
  • Ein-/Ausgabe — Streams (iostream), Dateistreams (fstream), String-Streams (sstream).
  • Strings — Die Klassen std::string und std::string_view.
  • Numerische Operationen — Mathematische Funktionen (cmath), Zufallszahlen (random), komplexe Zahlen (complex).
  • Multithreading — Threads (thread), Mutexe, Bedingungsvariablen.
  • Hilfsprogramme — std::optional, std::variant, std::any, Smart Pointer (shared_ptr, unique_ptr).


STL-Container



Container sind Template-Klassen, die zum Speichern von Objektsammlungen dienen. Sie werden in sequenzielle und assoziative Container unterteilt.



Sequentielle Container



  • std::vector — dynamisches Array. Schneller Zugriff über Index, langsames Einfügen in die Mitte.
  • std::deque — Doppelschlange. Schnelles Einfügen/Löschen an beiden Enden.
  • std::list — doppelt verkettete Liste. Schnelles Einfügen/Löschen an beliebiger Stelle, aber langsamer Zugriff über Index.


#include <iostream>#include <vector>

int main() { std::vector<int> numbers = {10, 20, 30, 40}; numbers.push_back(50); // Hinzufügen am Ende for (int n : numbers) { std::cout << n << " "; } return 0;}


Assoziative Container



  • std::set — Menge eindeutiger Elemente (sortiert).
  • std::map — Wörterbuch „Schlüssel-Wert“ (nach Schlüssel sortiert).
  • std::unordered_set / std::unordered_map — Hash-Tabellen (nicht sortiert, aber schneller).


#include <iostream>#include <map>

int main() { std::map<std::string, int> ages; ages["Alice"] = 30; ages["Bob"] = 25; for (const auto& [name, age] : ages) { std::cout << name << ": " << age << std::endl; } return 0;}


Algorithmen



Die Bibliothek <algorithm> enthält über 100 Algorithmen für die Arbeit mit Sequenzen: Sortieren, Suchen, Kopieren, Transformieren usw. Alle Algorithmen arbeiten über Iteratoren, was sie universell einsetzbar macht.



#include <iostream>#include <algorithm>#include <vector>

int main() { std::vector<int> v = {5, 2, 8, 1, 9}; std::sort(v.begin(), v.end()); // Sortieren aufsteigend auto it = std::find(v.begin(), v.end(), 8); if (it != v.end()) { std::cout << "Gefunden: " << *it << std::endl; } return 0;}


Arbeit mit Strings



Die Klasse std::string bietet praktische Methoden für die Textarbeit: Suchen, Ersetzen, Verketten, Vergleichen. In C++17 wurde std::string_view für nicht-besitzende String-Ansichten hinzugefügt.



#include                    

Empfehlungen