14.06.2023
C++ Standard Template Library: STL Container und Algorithmen (Seminar)
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
:quality(80):fill(fff,1)/p7i.vogel.de/companies/64/89/64898ec0e6773/logo-hoch-600x600.png)