Range for is another of those syntactic sugar enhancements that enables you to do the same as before, but with less code. Often, you find yourself iterating through all elements of a container and doing something with those elements. In my original example, that was done by the following code:
for(auto i = data.begin(); i< data.end(); i++)
cout << i->a << endl;
It is the traditional way to do this, but it means you’re declaring an iterator, getting the begin and end, and then ++ing from start to finish. With C++0x, you can write this in shorthand with the construct know as ‘range for’ which means what it says ‘Do this for the entire range’. It is very similar to the foreach keyword in C#.
for(auto &i: data)
cout << i.a << endl;
As you can see, this is just a nicer way to do the same thing you did before.