Quais são os prós / contras de usar a auto
palavra - chave, especialmente em loops?
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->??
}
Parece que se você não sabe se você tem um iterador para um mapa ou um vector que você não saberia se ao uso first
ou second
ou apenas diretamente acessar propriedades do objeto, não?
Isso me lembra o debate em C # sobre a utilização da palavra-chave var
. A impressão que estou chegando até agora é que, no mundo C ++, as pessoas estão prontas para adotar a auto
palavra-chave com menos esforço do que var
no mundo C #. Para mim, meu primeiro instinto é que gosto de saber o tipo da variável para saber quais operações posso executar nela.
for (auto& it : x)
(ou sem referência se você quiser copiar)
x
e você não sabe mesmo o que x
é, você não deve escrever esse ciclo em primeiro lugar ;-)
var
? Eu senti falta disso.