C ++ Ranged for Loop (mit Beispielen)

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 forSchleife 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 foriteriert die Fernschleife die Array-Nummer vom Anfang bis zum Ende. Die intVariable 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
Arbeiten der Fernkampfschleife in C ++

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 intArray 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 an1
  • zweite Iteration - n nimmt den Wert von an 2und 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 forund 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 forSchleife 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.

Das Arbeiten des Adressverweises in C ++ lag im Bereich der Schleife

Hinweis: Wenn Sie das Array / den Vektor / die Sammlung innerhalb der Schleife nicht ändern, ist es besser, das constSchlüsselwort in der Bereichsdeklaration zu verwenden.

 // collection is not modified in the loop for (const int &var : num) ( // code )

Interessante Beiträge...