Quels sont les avantages / inconvénients de l'utilisation du automot - clé, en particulier dans les boucles for?
for(std::vector<T>::iterator it = x.begin(); it != x.end(); it++ )
{
it->something();
}
for(std::map<T>::iterator it = x.begin(); it != x.end(); it++ )
{
it->second->something();
}
for(auto it = x.begin(); it != x.end(); it++ )
{
it->??
}
On dirait que si vous ne savez pas si vous avez un itérateur pour une carte ou un vecteur vous ne savez pas si vous souhaitez utiliser firstou secondou seulement des propriétés d'accès directement de l'objet, non?
Cela me rappelle le débat C # sur l'opportunité d'utiliser le mot clé var. L'impression que j'ai jusqu'à présent est que dans le monde C ++, les gens sont prêts à adopter le automot - clé avec moins de combat que vardans le monde C #. Pour moi, mon premier instinct est que j'aime connaître le type de la variable afin que je puisse savoir quelles opérations je peux m'attendre à y effectuer.
for (auto& it : x)(ou sans référence si vous voulez copier)
xet que vous ne savez même pas ce que xc'est, vous ne devriez pas écrire cette boucle en premier lieu ;-)
var? J'ai manqué ça.