Quel est l'équivalent standard du foreach de Qt ? Le fait est qu'il n'y en a pas, et que si Qt l'a introduit c'est bien parce que ce genre de truc est diablement pratique
S'écrit en C++ QMap<QString, int> map;
[...]
for (QMap<QString, int>::iterator it=map.begin(); it != map.end(); ++it)
qDebug() << it->first << ":" << it->second;
Et on a l'avantage d'éviter la copie de QString et l'appel à map.value() qui fait une recherche dans la map (QMap pouvant être remplacé par std::map avec exactement la même utilisation).
[^] # Re: gcc lave plus blanc ?
Posté par Étienne . En réponse à la dépêche Sortie de GCC 4.3. Évalué à 2.
Si je me rapport à http://doc.trolltech.com/4.1/containers.html#the-foreach-key(...) ça a vraiment l'air de vouloir éviter de faire peur aux allergiques des iterateurs (ce que certains commentaires ici même tendraient à justifier). Parceque
QMap<QString, int> map;
[...]
foreach (QString str, map.keys())
qDebug() << str << ":" << map.value(str);
S'écrit en C++
QMap<QString, int> map;
[...]
for (QMap<QString, int>::iterator it=map.begin(); it != map.end(); ++it)
qDebug() << it->first << ":" << it->second;
Et on a l'avantage d'éviter la copie de QString et l'appel à map.value() qui fait une recherche dans la map (QMap pouvant être remplacé par std::map avec exactement la même utilisation).