Quali sono i pro / contro nell'usare la autoparola chiave, specialmente in per i loop?
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->??
}
Sembra che se non sai se hai un iteratore per una mappa o un vettore non sapresti se usare firsto secondo semplicemente accedere direttamente alle proprietà dell'oggetto, no?
Questo mi ricorda il dibattito in C # sull'uso della parola chiave var. L'impressione che sto ottenendo finora è che nel mondo C ++ le persone sono pronte ad adottare la autoparola chiave con meno combattimenti rispetto varal mondo C #. Per me il mio primo istinto è che mi piace conoscere il tipo di variabile in modo da poter sapere quali operazioni posso aspettarmi di eseguire su di essa.
for (auto& it : x) (o senza riferimento se vuoi copiare)
xe non sai nemmeno cosa xsia, non dovresti scrivere quel loop in primo luogo ;-)
var? Ho perso questo.