Maison > développement back-end > C++ > Comment choisir la syntaxe correcte pour la boucle For basée sur la plage de C 11 ?

Comment choisir la syntaxe correcte pour la boucle For basée sur la plage de C 11 ?

Barbara Streisand
Libérer: 2024-12-19 17:38:13
original
876 Les gens l'ont consulté

How to Choose the Correct Syntax for C  11's Range-Based For Loop?

Quelle est la bonne façon d'utiliser la plage basée sur C 11 ?

C 11 a introduit une nouvelle façon d'itérer sur les conteneurs en utilisant la plage -basé sur for, qui est plus concis et plus facile à lire que les boucles for traditionnelles. Cependant, il y a quelques règles à suivre pour l'utiliser correctement.

Lorsque vous utilisez le for basé sur une plage, vous spécifiez le type de variable sur laquelle vous souhaitez parcourir, suivi de deux points (:), puis du conteneur dans lequel vous souhaitez parcourir. Par exemple :

for (int i : {1, 2, 3}) {
    // Do something with i
}

// Iterate over a vector of strings
for (string s : my_vector) {
    // Do something with s
}
Copier après la connexion

La variable que vous spécifiez dans l'instruction for se voit automatiquement attribuer la valeur de chaque élément du conteneur au fur et à mesure que vous le parcourez. Cela rend très pratique l'itération sur des collections de données.

Quelle syntaxe doit être utilisée ? for (auto elem : conteneur), for (auto& elem : conteneur), ou for (const auto& elem : conteneur) ?

La syntaxe que vous devez utiliser dépend si vous souhaitez modifier les éléments dans la collection ou non. Si vous souhaitez modifier les éléments, vous devez utiliser for (auto& elem : conteneur). Si vous ne souhaitez pas modifier les éléments, vous pouvez utiliser soit for (auto elem : containers) soit for (const auto& elem : containers).

Utiliser auto dans l'instruction for signifie que le compilateur va automatiquement en déduire le type de la variable. C'est pratique, mais cela peut parfois conduire à des erreurs si le compilateur ne peut pas déduire correctement le type. Si vous n'êtes pas sûr du type de la variable, il est plus sûr de la spécifier explicitement.

L'utilisation de const dans l'instruction for signifie que la variable ne peut pas être modifiée dans la boucle. Ceci est utile si vous souhaitez vous assurer que les éléments de la collection ne sont pas modifiés accidentellement.

Exemple :

// Modify the elements in a vector
vector<int> my_vector = {1, 2, 3, 4, 5};

for (auto& elem : my_vector) {
    elem *= 2;
}

// Do something with the modified vector
for (auto elem : my_vector) {
    cout << elem << endl;
}

// Iterate over a vector of const strings
const vector<string> my_const_vector = {"Hello", "World", "!"};

for (const auto& elem : my_const_vector) {
    // Do something with elem
    cout << elem << endl;
}
Copier après la connexion

Dans le premier exemple, nous modifions le éléments du vecteur en les multipliant par 2. Dans le deuxième exemple, nous parcourons un vecteur const de chaînes et imprimons chaque élément. Notez que nous ne pouvons pas modifier les éléments d'un vecteur const.

Conclusion :

Range-based for est un outil puissant qui peut rendre votre code plus concis et plus facile à lire. En suivant les règles décrites ci-dessus, vous pouvez utiliser correctement la méthode basée sur une plage pour parcourir des collections de données.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal