Zum Hauptinhalt springen

Beispiele für die Verwendung von range based for in Si

Range based for - dies ist eine neue Funktion, die in der Programmiersprache C11 eingeführt wurde, mit der Sie bequem über Container iterieren können. Dieses Design ermöglicht es Programmierern, besser lesbaren und eleganteren Code zu schreiben.

Einer der Hauptvorteile von range based for besteht darin, dass der Typ der Containerelemente automatisch ermittelt und durch sie iteriert wird. Wir müssen die Iteratoren nicht mehr explizit angeben und mit Zeigern oder Indizes auf die Elemente zugreifen. Range based for bestimmt den Elementtyp selbstständig und ermöglicht es uns, wie bei einer normalen Variablen damit zu arbeiten.

Betrachten Sie ein Beispiel für die Verwendung von range based for. Stellen wir uns vor, wir haben ein Array von Zahlen und wir möchten jede Zahl auf dem Bildschirm ausgeben:

#include <iostream>int main() ;for (int number : numbers) return 0;>

Range based for kann nicht nur mit Arrays, sondern auch mit anderen Containern wie Vektoren oder Listen verwendet werden. Wir können auch ein Schlüsselwort hinzufügen const um anzuzeigen, dass wir die Elemente des Containers nicht ändern werden:

#include <iostream>#include <vector>int main() ;for (const int& number : numbers) return 0;>

In diesem Beispiel verwenden wir einen Zahlenvektor anstelle eines Arrays, aber die range based for-Syntax bleibt gleich. Beachten Sie, dass wir den Link verwenden & für jede Zahl und fügen Sie ein Schlüsselwort hinzu const, um anzuzeigen, dass die Elemente des Vektors innerhalb der Schleife nicht geändert werden können.

Range based for ist ein sehr praktisches Design in der Sprache C11 und kann zum Durchlaufen verschiedener Container verwendet werden. Es macht den Code verständlicher und beseitigt die Notwendigkeit, Iteratortypen explizit anzugeben.

Definition von range based for und seine Vorteile

Eines der Hauptmerkmale von range based for ist seine Benutzerfreundlichkeit. Dazu wird das Schlüsselwort auto verwendet, das automatisch den Variablentyp bestimmt, sowie das Schlüsselwort for, das den Beginn der Schleife angibt.

Die Vorteile von range based for gegenüber einer herkömmlichen for-Schleife umfassen die Einfachheit und Verständlichkeit des Codes. Diese Schleife vermeidet Fehler im Zusammenhang mit Indizes oder Iteratoren, da sie automatisch die Größe des Containers ermittelt und alle seine Elemente durchläuft.

Darüber hinaus erleichtert range based for das Lesen von Code und macht ihn prägnanter. Die fehlende explizite Angabe von Variablentypen macht den Code klarer und leichter zu lesen.

Durch die Verwendung von range based for wird der Code "modularer" und benutzerfreundlicher. Diese Schleife vereinfacht den Prozess des Iterierens über den Container und befreit den Programmierer von der Sorge um die Details der Schleifenimplementierung.

Beispiel für die Verwendung von range based for zum Durchlaufen von Array-Elementen

Um eine range based for-Schleife zu verwenden, müssen Sie den Array-Elementtyp, den Variablennamen für jedes Element und das Array selbst in Klammern nach dem for-Schlüsselwort angeben. Zum Beispiel:

int arr[] = ;for (int element : arr) 

In diesem Beispiel wird jeder Wert eines arr-Arrayelements angezeigt.

In ähnlicher Weise können Sie eine range based for-Schleife verwenden, um Elemente anderer Array-Typen wie char zu durchlaufen[], double[] usw.

Es ist jedoch erwähnenswert, dass die range based for-Schleife es nicht erlaubt, die Werte der Array-Elemente zu ändern, sondern sie nur zu lesen. Wenn Sie die Werte der Array-Elemente ändern müssen, sollten Sie eine normale for-Schleife verwenden.

Verwenden von range based for, um einen Container mit verschiedenen Elementtypen zu durchforsten

Für die Verwendung von range based for ist ein Container erforderlich, der die Iteration unterstützt. Beispiele für solche Container in Si können Arrays, Standardcontainer aus der STL-Bibliothek wie vector oder list sowie benutzerdefinierte Container sein.

Beispiel für die Verwendung von range based for zum Durchforsten eines Containers mit verschiedenen Elementtypen: