Difference between hash_map and unordered_map?
Since there was no hash table defined in the C++ standard library, different implementors of the standard libraries would provide a non-standard hash table often named hash_map
. Because these implementations were not written following a standard they all had subtle differences in functionality and performance guarantees.
Starting with C++11 a hash table implementation has been added to the C++ standard library standard. It was decided to use an alternate name for the class to prevent collisions with these non-standard implementations and to prevent inadvertent use of the new class by developers who had hash_table
in their code.
The chosen alternate name is unordered_map
which really is more descriptive as it hints at the class's map interface and the unordered nature of its elements.
kidnamedlox
Updated on July 09, 2022Comments
-
kidnamedlox almost 2 years
I recently discovered that the implementation of the hash map in C++ will be called
unordered_map
.When I looked up why they weren't just using
hash_map
, I discovered that apparently there are compatibility issues with the implementation ofhash_map
thatunordered_map
resolves (more about it here).That wiki page doesn't give much more information so I wondering if anyone knew some of the issues with
hash_map
thatunordered_map
resolves.