44 votes

Comment parcourir/itérer une carte STL ?

Je veux parcourir une carte STL. Je ne veux pas utiliser sa clé. Je me fiche de l'ordre, je cherche juste un moyen d'accéder à tous les éléments qu'il contient. Comment puis-je faire ceci?

11voto

FredOverflow Points 88201

Comme pour tout conteneur STL, les begin() et end() renvoient des itérateurs que vous pouvez utiliser pour parcourir la carte. Le déréférencement d'un itérateur de carte donne un std::pair<const Key, Value> .

5voto

vitaut Points 10255

Vous pouvez parcourir la carte STL de la même manière que n'importe quel autre conteneur STL : en utilisant des itérateurs, par exemple

 for (std::map<key, value>::const_iterator
     i = myMap.begin(), end = myMap.end(); i != end; ++i)
{
    // *i is a key-value pair
}

1voto

Harsh Sharma Points 33

Utilisation de for avec auto pour l'utilisation de C++11 et supérieur

 map<int,int> map_variable; //you can use any data type for keys, as well as value

for(auto &x:map_variable)
{ 
    cout<<x.first ;// gives the key
    cout<<x.second; //gives the value
}

Le nouveau format de for utilisant auto été introduit en C++11

Pour lui donner des fonctionnalités comme certains langages de niveau supérieur comme python

Là où il y avait déjà une implémentation de ce type d'itération

PS : la variable map garde les valeurs triées, donc lors de l'itération, vous obtiendrez les clés dans l'ordre trié

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X