So far I have always used an iterator for traversing through all the keys in an STL map as follows:
for (std::map<char,int>::iterator it=mymap.begin(); it!=mymap.end(); ++it){
std::cout << it->first << " => " << it->second << '\n';
}
Very recently though I came across some code that used a different style to iterate through the keys as shown below. Has this feature been added only recently in revised standard? It seems like a rather interesting way of getting more done with lesser code, as many other languages already provide.
for (auto& x: mymap) {
std::cout << x.first << " => " << x.second << '\n';
}
Also, I am curious to know the exact implications of using the keyword "auto" here.