std::unordered_map&lt;std::string, SomeClassName&gt;::iterator it = hashmap.begin();<p>vs<p>auto it = hashmap.begin();<p>I find auto useful for cutting down some of the verbosity of templates STL containers, but I can see how over use can lead to code requiring much more referencing if maintaining code that rarely defines types.