Dans les coulisses des boucles basées sur une plage C 11
Les boucles basées sur une plage offrent une syntaxe concise pour itérer sur les éléments d'une collection, mais leur fonctionnement interne peut ne pas être immédiatement apparent.
Initialisation de la variable
Bien qu'il puisse sembler que la variable de boucle (dans ce cas, x) n'est initialisée qu'une seule fois, la réalité est différente. Dans une boucle basée sur une plage comme :
<code class="cpp">for (const int x : vec) { cout << x << endl; }</code>
Le compilateur crée une nouvelle variable locale x pour chaque itération. Il initialise x à la valeur de l'élément suivant dans le vecteur vec.
Variables Const
Bien qu'elle soit déclarée const, la variable x peut sembler changer à chaque itération parce que ce n'est pas la même variable. Chaque x nouvellement créé est affecté à l'élément suivant de vec, donnant l'illusion que la même variable est en cours de modification.
Détails d'implémentation
Des boucles basées sur la plage sont implémentées en utilisant des itérateurs, qui sont des objets qui permettent d'accéder aux éléments d'une collection. Dans le code ci-dessus, vec a un itérateur renvoyé par les fonctions start() et end(). L'itérateur est utilisé pour parcourir les éléments, et x est affecté à la valeur pointée par l'itérateur.
Notes supplémentaires
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!