Каковы плюсы / минусы использования autoключевого слова, особенно в циклах 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->??
}
Похоже, если вы не знаете, есть ли у вас итератор для карты или вектора, вы не знаете, использовать firstли secondили просто напрямую обращаться к свойствам объекта, нет?
Это напоминает мне спор о том, стоит ли использовать ключевое слово в C # var. У меня сложилось впечатление, что в мире C ++ люди готовы принять autoключевое слово с меньшими усилиями, чем varв мире C #. Для меня мой первый инстинкт заключается в том, что мне нравится знать тип переменной, чтобы я мог знать, какие операции я могу ожидать над ней.
for (auto& it : x)(или без ссылки, если вы хотите копировать)
xи вы даже не знаете, что это xтакое, вы не должны писать этот цикл в первую очередь ;-)
var? Я пропустил это.