Які плюси та мінуси використання autoключового слова, особливо для циклів?
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? Я пропустив це.