¿Cuáles son las ventajas y desventajas de utilizar la autopalabra clave, especialmente en bucles 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->??
}
Parece como si no sabe si tiene un iterador para un mapa o un vector no vas a saber si se debe utilizar firsto secondo sólo directamente propiedades de acceso del objeto, ¿no?
Esto me recuerda el debate de C # sobre si usar la palabra clave var. La impresión que tengo hasta ahora es que en el mundo de C ++ la gente está lista para adoptar la autopalabra clave con menos pelea que varen el mundo de C #. Para mí, mi primer instinto es que me gusta saber el tipo de variable para poder saber qué operaciones puedo realizar en ella.
for (auto& it : x)(o sin referencia si desea copiar)
xy ni siquiera sabes qué xes, no deberías escribir ese bucle en primer lugar ;-)
var? Me lo perdí.