In diesem Tutorial lernen wir anhand von Beispielen das C ++ - Sortiment für Schleifen und seine Best Practices kennen.
C ++ 11 führte die Fernkampfschleife ein for
. Diese for
Schleife wird speziell für Sammlungen wie Arrays und Vektoren verwendet .
Beispielsweise,
// initialize an int array int num(3) = (1, 2, 3); // use of ranged for loop for (int var : num) ( // code )
Hier for
iteriert die Fernschleife die Array-Nummer vom Anfang bis zum Ende. Die int
Variable var speichert den Wert des Array-Elements in jeder Iteration.
Seine Syntax lautet:
for (rangeDeclaration : rangeExpression) ( // code )
Im obigen Beispiel ist
- rangeDeclaration -
int var
- rangeExpression - num

Beispiel 1: Rang für Schleife mit Array
#include using namespace std; int main() ( // initialize array int numArray() = (1, 2, 3, 4, 5); // use of ranged for loop to print array elements for (int n : numArray) ( cout << n << " "; ) return 0; )
Ausgabe
1 2 3 4 5
In diesem Beispiel haben wir ein int
Array mit dem Namen numArray deklariert und initialisiert . Hier haben wir die Fernkampfschleife verwendet for
, um die Elemente von numArray auszudrucken.
- erste Iteration - n nimmt den Wert des ersten Mitglieds des Arrays an
1
- zweite Iteration - n nimmt den Wert von an
2
und wird dann gedruckt und so weiter.
Hinweis: Die Bereichs-for-Schleife iteriert das Array automatisch von Anfang bis Ende. Die Anzahl der Iterationen in der Schleife muss nicht angegeben werden.
Beispiel 2: C ++ Ranged for Loop mit Vektor
#include #include using namespace std; int main() ( // declare and initialize vector vector num_vector = (1, 2, 3, 4, 5); // print vector elements for (int n : num_vector) ( cout << n << " "; ) return 0; )
Ausgabe
1 2 3 4 5
Beispiel 3: Deklarieren Sie die Sammlung innerhalb der Schleife
#include using namespace std; int main() ( // define the collection in the loop itself for (int n : (1, 2, 3, 4, 5)) ( cout << n << " "; ) return 0; )
Ausgabe
1 2 3 4 5
Hier haben wir die Sammlung innerhalb der Schleife selbst deklariert, dh
rangeExpression = (1, 2, 3, 4, 5)
Dies ist auch eine gültige Methode zur Verwendung der Bereichsschleife for
und funktioniert genauso wie bei Verwendung eines tatsächlichen Arrays oder Vektors.
C ++ Ranged for Loop Best Practices
In den obigen Beispielen haben wir eine Variable in der for
Schleife deklariert , um jedes Element der Sammlung in jeder Iteration zu speichern.
int num(3) = (1, 2, 3); // copy elements of num to var for (int var : num) ( // code )
Es ist jedoch besser, die auf dem Bereich basierende for-Schleife wie folgt zu schreiben :
// access memory location of elements of num for (int &var : num) ( // code )
Beachten Sie die Verwendung von &
vor var. Hier,
int var : num
- Kopiert jedes Element von num in die Variable var in jeder Iteration. Dies ist nicht gut für den Computerspeicher.int &var : num
- Kopiert nicht jedes Element von num nach var. Greift stattdessen direkt von num selbst auf die Elemente von num zu. Das ist effizienter.
Hinweis: Der &
Operator wird als Referenzoperator bezeichnet. Wir werden mehr darüber in C ++ - Zeigern erfahren.

Hinweis: Wenn Sie das Array / den Vektor / die Sammlung innerhalb der Schleife nicht ändern, ist es besser, das const
Schlüsselwort in der Bereichsdeklaration zu verwenden.
// collection is not modified in the loop for (const int &var : num) ( // code )