C++ Standard Template Library: STL Container und Algorithmen

24.07.2018

18.12.2019 - 20.12.2019

Veranstaltungsort: München, MicroConsult

C++ Standard Template Library: STL Container und Algorithmen

In der "C++-STL" sind die universell einsetzbaren Bibliotheksklassen und -funktionen für "Container" und "Algorithmen" zusammengefasst. Durch die Abstrahierung des Zusammenspiels beider Bereiche über "Iteratoren" ist die STL ferner in beiden Dimensionen erweiterbar.

In der "C++-STL" sind die universell einsetzbaren Bibliotheksklassen und -funktionen für "Container" und "Algorithmen" zusammengefasst. Durch die Abstrahierung des Zusammenspiels beider Bereiche über "Iteratoren" ist die STL ferner in beiden Dimensionen erweiterbar. Neben einem generellen Architektur-Überblick, der wichtig ist für ein tieferes Verständnis des STL-Designs und der sich daraus ergebenden Möglichkeiten (wie auch einigen Einschränkungen), liegt der Fokus des Trainings auf der Nutzung der Container-Klassen (Welcher Container für welchen Zweck?), Nutzung der Algorithmen zur Effizienzsteigerung und Codevereinfachung, der Laufzeit-Performance und dem Memory-Footprint. Den letzen Punkt betreffend wird besonderes Augenmerk auf "Hilfe zur Selbsthilfe" gelegt, um so die Teilnehmer in die Lage zu versetzen, auch im Rahmen ihres C++-Einsatzes bei Bedarf entsprechende Untersuchungen vorzunehmen und dabei die besonderen Bedingungen des geplanten Einsatzes eines Containers oder Algorithmus zu berücksichtigen. Bitte beachten Sie, dass dieses Trainings nicht auf die C++-Standardbibliothek AUSSERHALB der STL eingeht. Sofern Sie ein umfangreiches und vollständiges Wissen zur gesamten C++-Bibliohek anstreben, empfehlen wir zusätzlich den Besuch unseres Trainings "C++: Standard- und Boost-Library Workshop".

 

Inhalt

Container-Klassen

  • Sequenzielle Container
  • Geordnete assoziative Container
  • Ungeordnete assoziative Container

 

Iteratoren als Bindeglied

  • Konzept der Iteretoren
  • Iterator-Kategorien
  • Spezielle Iteratoren

 

Algorithmen

  • Modifizierende Algorithmen
  • Nicht-modifizierende Algorithmen
  • Sortieren und (effizientes) Suchen
  • Mengen-Operationen
  • Sonstige Algorithmen

 

Möglichkeiten zur Erweiterung

  • Neue Container (Bereitstellung von Iteratoren)
  • Neue Algorithmen (Nutzung von Iteratoren)
  • Eigene Iteratoren (auch zur Nutzung als Generatoren)

 

Performance-Betrachtungen (inkl. Memory-Footprint)

  • Grundsätzliche Unterschiede der Container
  • Performance-Abschätzung ("Big-O"-Notation)
  • Eigene Performance-Messungen (Tipps und Tricks)

 

Begleitend: Mikro-Projekte

  • Demo-Code und/oder Aufgaben zur eigenen Bearbeitung nach Wahl
  • Inkl. anschließender Erläuterung möglicher Variationen