std::map is not a hash map. It is an ordered, tree-based map. There is a C++ hash map as part of TR1. It's in <unordered_map> as std::unordered_map or std::tr1::unordered_map depending on your implementation.
That said, std::map is often good enough, though I have run into plenty of situations where it wasn't.