Es werden einfache Anwendungsfälle der STL-Algorithmen
std::for_eachstd::fillstd::generate
demonstriert.
Im Wesentlichen ruft std::generate eine „Generator Funktion” (z.B. Lambda-Funktion)
für jeden existierenden Eintrag eines Bereichs (Container) auf,
um mit den Rückgabewerten dieser Funktion den Container zu befüllen:
Abbildung: Prinzip einer „Generator Funktion” im Zusammenspiel mit std::generate.
std::fill und std::generate sind einfache Algorithmen zum Füllen von Containern (Bereichen).
-
Der Algorithmus
std::fillfüllt den angegebenen Bereich mit Kopien eines bereitgestellten Werts. -
Der Algorithmus
std::generatefüllt den Bereich mit den Ergebnissen der sukzessiven Aufrufe eines bereitgestellten Callables.
-
Der Algorithmus
std::for_eachhat lesenden und schreibenden Zugriff auf den angegebenen Bereich. Änderungen des Containers können folglich an Hand des vorhandenen Inhalts erfolgen. -
Der Algorithmus
std::generatekann einen Bereich mit berechneten Ergebnissen eines bereitgestellten Callables nur überschreiben. Das Callable hat keine Informationen über den vorhandenen Containerinhalt.