C ++ Ranged for Loop (avec des exemples)

Dans ce didacticiel, nous allons découvrir la gamme de boucles C ++ et ses meilleures pratiques à l'aide d'exemples.

C ++ 11 a introduit la forboucle à distance . Cette forboucle est spécifiquement utilisée avec des collections telles que des tableaux et des vecteurs .

Par exemple,

 // initialize an int array int num(3) = (1, 2, 3); // use of ranged for loop for (int var : num) ( // code )

Ici, la forboucle à distance itère le tableau num du début à la fin. La intvariable var stocke la valeur de l'élément du tableau à chaque itération.

Sa syntaxe est,

 for (rangeDeclaration : rangeExpression) ( // code )

Dans l'exemple ci-dessus,

  • rangeDeclaration -int var
  • rangeExpression - num
Fonctionnement de la boucle à distance pour en C ++

Exemple 1: Rangé pour une boucle utilisant un tableau

 #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; )

Production

 1 2 3 4 5

Dans cet exemple, nous avons déclaré et initialisé un inttableau nommé numArray. Ici, nous avons utilisé la forboucle à distance pour imprimer les éléments de numArray.

  • première itération - n prend la valeur du premier membre du tableau, qui est1
  • deuxième itération - n prend la valeur de 2et est ensuite imprimé et ainsi de suite.

Remarque: la boucle à distance pour itère automatiquement le tableau de son début à sa fin. Nous n'avons pas besoin de spécifier le nombre d'itérations dans la boucle.

Exemple 2: C ++ classé pour une boucle utilisant un vecteur

 #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; )

Production

 1 2 3 4 5

Exemple 3: déclarer une collection dans la boucle

 #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; )

Production

 1 2 3 4 5

Ici, nous avons déclaré la collection dans la boucle elle-même ie

 rangeExpression = (1, 2, 3, 4, 5)

C'est également un moyen valable d'utiliser la forboucle à distance , et cela fonctionne de la même manière que lorsque nous utilisons un tableau ou un vecteur réel.

Meilleures pratiques pour la boucle C ++

Dans les exemples ci-dessus, nous avons déclaré une variable dans la forboucle pour stocker chaque élément de la collection à chaque itération.

 int num(3) = (1, 2, 3); // copy elements of num to var for (int var : num) ( // code )

Cependant, il est préférable d'écrire la boucle for basée sur la plage comme ceci:

 // access memory location of elements of num for (int &var : num) ( // code )

Notez l'utilisation de &before var. Ici,

  • int var : num- Copie chaque élément de num dans la variable var à chaque itération. Ce n'est pas bon pour la mémoire de l'ordinateur.
  • int &var : num- Ne copie pas chaque élément de num dans var. Au lieu de cela, accède aux éléments de num directement à partir de num lui-même. C'est plus efficace.

Remarque: l' &opérateur est appelé opérateur de référence. Nous en apprendrons plus sur les pointeurs C ++.

Fonctionnement de l'adresse pointant en C ++ à portée de boucle

Remarque: Si nous ne modifions pas le tableau / vecteur / collection dans la boucle, il est préférable d'utiliser le constmot - clé dans la déclaration de plage.

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

Articles intéressants...