Maison > développement back-end > C++ > Comment parcourir un std::map en utilisant des boucles for basées sur une plage en C 11 et versions ultérieures ?

Comment parcourir un std::map en utilisant des boucles for basées sur une plage en C 11 et versions ultérieures ?

Barbara Streisand
Libérer: 2024-10-27 17:34:31
original
421 Les gens l'ont consulté

How do I iterate through a std::map using range-based for loops in C  11 and later?

Boucle for() basée sur une plage avec std::map

Dans C 11 et versions ultérieures, boucles for() basées sur une plage offrent un moyen pratique de parcourir les conteneurs. Lors d'une itération sur des conteneurs simples comme des vecteurs, chaque élément est facilement accessible en tant que variable de boucle. Cependant, pour les conteneurs complexes tels que les cartes, comprendre le type de variable de boucle devient crucial.

Considérez l'extrait de code suivant :

<code class="cpp">std::map<foo, bar> testing = { /*...blah...*/ };
for (auto abc : testing)
{
    std::cout << abc << std::endl;
    std::cout << abc->first << std::endl;
}
Copier après la connexion

Dans ce scénario, chaque élément est un std : :map::value_type, qui est essentiellement un std::pair. Cela signifie :

Pour C 17 et versions ultérieures :

<code class="cpp">for (auto& [key, value] : myMap) {
    std::cout << key << " has value " << value << std::endl;
}</code>
Copier après la connexion

Pour C 11 et C 14 :

<code class="cpp">for (const auto& kv : myMap) {
    std::cout << kv.first << " has value " << kv.second << std::endl;
}</code>
Copier après la connexion

Vous pouvez également marquer kv comme const pour une vue en lecture seule des valeurs.

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