До сих пор я всегда использовал итератор для перемещения по всем клавишам на карте STL следующим образом:
for (std::map<char,int>::iterator it=mymap.begin(); it!=mymap.end(); ++it){
std::cout << it->first << " => " << it->second << '\n';
}
Совсем недавно, хотя я натолкнулся на какой-то код, который использовал другой стиль для итерации по клавишам, как показано ниже. Была ли эта функция добавлена только недавно в пересмотренный стандарт? Похоже, что это довольно интересный способ сделать больше с меньшим кодом, как уже многие другие языки.
for (auto& x: mymap) {
std::cout << x.first << " => " << x.second << '\n';
}
Кроме того, мне любопытно узнать точные последствия использования ключевого слова "авто" здесь.