Je peut facilement effectuer une itération sur les valeurs d'une carte à l'aide d'une gamme à base de boucle?

Est-il possible d'itérer sur toutes les valeurs dans un std::map en utilisant simplement un foreach?

C'est mon code actuel:

std::map<float, MyClass*> foo ;

for (map<float, MyClass*>::iterator i = foo.begin() ; i != foo.end() ; i ++ ) {
    MyClass *j = i->second ;
    j->bar() ;
}

Est-il un moyen pour que je puisse faire cela?

for (MyClass* i : /*magic here?*/) {
    i->bar() ;
}
  • Pourquoi vous n'aimez pas je->second->bar() ?
  • Jetez un oeil à [cette question, la réponse de l'][1]. Je pense que est exactement ce dont vous avez besoin. [1]: stackoverflow.com/questions/6963894/...
  • Non, que l'on demande seulement comment itérer sur une carte, en général, pour les de gamme pour les. Celui-ci lui demande comment itérer plus précisément, uniquement sur les valeurs.
  • Ahh, je vois. J'ai oublié que.