¿Cuáles son las ventajas y desventajas de utilizar la auto
palabra 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 first
o second
o 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 auto
palabra clave con menos pelea que var
en 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)
x
y ni siquiera sabes qué x
es, no deberías escribir ese bucle en primer lugar ;-)
var
? Me lo perdí.