Kapitel 7. Flexible Iterator-Schnittstellen

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Die Iteration über eine Menge von Elementen ist eine gängige Operation in jedem Programm. Einige Programmiersprachen bieten eigene Konstrukte, um über Elemente zu iterieren, und objektorientierte Programmiersprachen haben Anleitungen in Form von Entwurfsmustern, wie man generische Iterationsfunktionen implementieren kann. Für prozedurale Programmiersprachen wie C gibt es jedoch nur sehr wenige Anleitungen dieser Art.

Das Verb "iterieren" bedeutet, dass man dieselbe Sache mehrmals macht. In der Programmierung bedeutet es normalerweise, denselben Programmcode auf mehreren Datenelementen auszuführen. Eine solche Operation ist oft erforderlich, weshalb sie in C von Haus aus für Arrays unterstützt wird, wie der folgende Code zeigt:

for (i=0; i<MAX_ARRAY_SIZE; i++)
{
  doSomethingWith(my_array[i]);
}

Wenn du über eine andere Datenstruktur iterieren willst, z. B. einen Rot-Schwarz-Baum, musst du eine eigene Iterationsfunktion implementieren. Du kannst diese Funktion mit datenstrukturspezifischen Iterationsoptionen ausstatten, z. B. ob der Baum in der Tiefe oder in der Breite durchlaufen werden soll. Es gibt Literatur darüber, wie man solche spezifischen Datenstrukturen implementiert und wie die Iterationsschnittstellen für diese Datenstrukturen aussehen. Wenn du eine solche datenstrukturspezifische Schnittstelle ...

Get Fließend C now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.