Quels sont les avantages / inconvénients de l'utilisation du auto
mot - 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 first
ou second
ou 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 auto
mot - clé avec moins de combat que var
dans 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)
x
et que vous ne savez même pas ce que x
c'est, vous ne devriez pas écrire cette boucle en premier lieu ;-)
var
? J'ai manqué ça.