Maison  >  Article  >  développement back-end  >  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
Barbara Streisandoriginal
2024-10-27 17:34:31326parcourir

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;
}

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>

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>

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!

Déclaration:
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