Standard Template Library
Die STL (engl. standard template library) ist eine bei Hewlett-Packard (HP) entwickelte C++-Bibliothek, die zu weiten Teilen in die Sprache C++, in die so genannte C++-Standardbibliothek übernommen wurde.Es handelt sich um eine weitgehend auf generischer Programmierung basierende Bibliothek mit dem Schwerpunkt Datenstrukturen und Algorithmen. Die STL unterscheidet:
- Container (Behälterklassen),
- Iteratoren,
- Algorithmen und
- Funktionsobjekte.
Table of contents |
2 Iteratoren 3 Algorithmen 4 Funktionsobjekte 5 Beispiele 6 Weblinks |
Container
Container (Behälterklassen) sind Datenstrukturen, die aus einer Anzahl verschiedener Objekte des selben Datentyps bestehen. Die grundlegenden Container der STL sind:
Iteratoren
Jeder Container verfügt über verallgemeinerte Zeiger, den sog. Iteratoren (lat. iterare wiederholen), mit deren Hilfe auf einzelne Elemente des Containers zugegriffen werden kann. Bezogen auf ihre Aufgabe sind die Iteratoren reine Zugriffsobjekte. Sie entkoppeln die Algorithmen von den Daten, so dass diese typenunabhängig werden. Bei den Iteratoren gibt es folgende Kategorien:
- der Input-Iterator,
- der Output-Iterator,
- der Forward-Iterator,
- der bidirektionale Iterator und
- der Random-Access-Ierator.
Algorithmen
Algorithmen sind Funktionen mit bestimmten Manipulationsvorschriften, die auf einen Container angewendet werden. Dabei sind sie unabhängig von der speziellen Implementierung der Container. Sie können nur über Iteratoren auf die Elemente in den Containern zugreifen. Sie enthalten u.a. die Standard-Algorithmen der Informatik, wie z.B. Sortieralgorithmen oder Verfahren zur Erzeugung von Zufallszahlen.Funktionsobjekte
Bei Funktionsobjekten oder Funktoren handelt es sich um Objekte, die genauso aufgerufen werden können wie Funktionen. Bei ihnen ist der Funktionsoperator () mit der Operatorfunktion "operator(){}" überladen. Sie sind Objekte, die sich wie Funktionen verhalten, aber trotzdem alle Eigenschaften von Objekten haben. Die grundlegenden Funktionsobjekte sind:- der Generator mit keinem Funktionsparameter f(),
- die Unary Function mit einem Funktionsparameter f(x) und
- die Binary Function mit zwei Funktionsparametern f(x,y).
Beispiele
Viele einfache STL-Quelltextbeispiele, die Bestandteil des Standardwerks The C++ Standard Library - A Tutorial and Reference von Nicolai M. Josuttis sind, befinden sich hier.