C++ Standardbibliothek: vollständiger Überblick und Codebeispiele

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

C++ Standardbibliothek: vollständiger Überblick



Die C++ Standardbibliothek (oft als STL — Standard Template Library bezeichnet) ist eine leistungsstarke Sammlung von Template-Klassen und -Funktionen, die in jedem C++-Compiler enthalten ist. Sie bietet fertige, getestete und optimierte Lösungen für die häufigsten Programmieraufgaben: von der Arbeit mit dynamischen Arrays und Zeichenketten bis hin zu komplexen Sortier- und Suchalgorithmen. Die Verwendung der Standardbibliothek beschleunigt die Entwicklung erheblich, erhöht die Zuverlässigkeit des Codes und erleichtert dessen Wartung.



In diesem Artikel werden wir die Hauptkomponenten der C++ Standardbibliothek im Detail besprechen: Container, Algorithmen, Iteratoren, Zeichenketten, Ein-/Ausgabestreams und intelligente Zeiger. Jeder Abschnitt wird von praktischen Codebeispielen begleitet.



Container (Containers)



Container sind Klassen, die zum Speichern und Organisieren von Datensätzen dienen. Sie werden in drei Hauptkategorien unterteilt:



  • Sequenzielle Container: speichern Elemente in linearer Reihenfolge. Hauptvertreter: std::vector (dynamisches Array), std::list (doppelt verkettete Liste), std::deque (Doppelschlange).
  • Assoziative Container: speichern Elemente in sortierter Form und ermöglichen schnelles Suchen. Beispiele: std::set (Menge), std::map (Wörterbuch "Schlüssel-Wert").
  • Ungeordnete assoziative Container (C++11): verwenden Hash-Tabellen für noch schnelleren Zugriff. Beispiele: std::unordered_set, std::unordered_map.


Beispiel für die Arbeit mit std::vector und std::map:



#include <iostream>#include <vector>#include <map>#include <string>

int main() { // Sequenzieller Container std::vector<int> numbers = {10, 20, 30, 40}; numbers.push_back(50); // Hinzufügen am Ende

std::cout << "Vektor: "; for (int n : numbers) { std::cout << n << " "; } std::cout << std::endl;

// Assoziativer Container std::map<std::string, int> ages; ages["Alice"] = 30; ages["Bob"] = 25;

std::cout << "Alter von Alice: " << ages["Alice"] << std::endl; return 0;}


Iteratoren (Iterators)



Iteratoren sind eine verallgemeinerte Methode für den Zugriff auf Elemente eines Containers. Sie funktionieren wie "intelligente Zeiger" und ermöglichen ein einheitliches Durchlaufen beliebiger Container. Die wichtigsten Iteratortypen sind: begin() (Zeiger auf das erste Element) und end() (Zeiger auf das Element nach dem letzten).



Beispiel für die Verwendung eines Iterators zum Durchlaufen einer std::list:



#include <iostream>#include <list>

int main() { std::list<double> prices = {19.99, 29.99, 9.99};

// Verwendung eines Iterators for (auto it = prices.begin(); it != prices.end(); ++it) { std::cout << *it << " "; } std::cout << std::endl; return 0;}


Algorithmen (Algorithms)



Die Bibliothek <algorithm> enthält Dutzende vorgefertigter Funktionen für die Arbeit mit Datenfolgen: Sortieren, Suchen, Kopieren, Transformieren und vieles mehr. Algorithmen arbeiten mit Iteratoren, was sie universell einsetzbar macht.



Beliebte Algorithmen:

  • std::sort — Sortieren eines Bereichs.
  • std::find — Suchen des ersten Vorkommens eines Wertes.
  • std::copy — Kopieren von Elementen.
  • std::accumulate — Summieren von Elementen (aus <numeric>).


Beispiel für Sortieren und Suchen:



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

int main() { std::vector<int> data = {5, 2, 8, 1, 9

Empfehlungen