Now that std has a real hash map in unordered_map, why (or when) would I still want to use the good old map over unordered_map on systems where it actually exists? Are there any obvious situations that I cannot immediately see?
Now that std has a real hash map in unordered_map , why (or when)
Share
As already mentioned,
mapallows to iterate over the elements in a sorted way, butunordered_mapdoes not. This is very important in many situations, for example displaying a collection (e.g. address book). This also manifests in other indirect ways like: (1) Start iterating from the iterator returned byfind(), or (2) existence of member functions likelower_bound().Also, I think there is some difference in the worst case search complexity.
For
map, it is O( lg N )For
unordered_map, it is O( N ) [This may happen when the hash function is not good leading to too many hash collisions.]The same is applicable for worst case deletion complexity.