at() is a new method for
std::map in C++11.
Rather than insert a new default constructed element as
operator does if an element with the given key does not exist, it throws a
std::out_of_range exception. (This is similar to the behaviour of
Because of this behaviour it makes sense for there to be a
const overload of
operator which always has the potential to change the map.