Quick question...Is hash_map part of the STL?
Hashmap uses a hash table where the key is hashed to a slot in the table and the value is stored in a list tied to that key. The map is implemented as the balanced BST (binary search tree). This is the key difference between them.
Yes, HashMap in java and unordered_map in c++ stl are more or less the same… you can store pointers in java too(Don't forget, in java, everything you deal with is a reference)…
A map cannot contain duplicate keys; each key can map to at most one value. HashMap is a Hash table based implementation of the Map interface. HashMap provides all of the optional map operations, and permits null values and the null key.
is it a map or a hashtable? Yes. The static, compile time type of the reference is Map .
The STL has hash_map
, but the C++ Standard Library does not.
Due to a common misconception, you may think of the C++ Standard Library as "the STL", or of parts of your toolchain's implementation of the C++ Standard Library as "an STL implementation".
It is not.
It is also a great shame that both MSVC++ and GCC (which implement hash_map
as a compiler-specific extension), place it in the std
namespace, which is not only highly misleading, but also illegal per the standard. *sigh*
C++11 has introduced std::unordered_map
, which is not dissimilar.
Quoting Wikipedia (emphasis added):
From the STL page:
The Standard Template Library (STL) is a software library partially included in the C++ Standard Library.
...and then from the hash_map page
In the C++ programming language,
hash_map
is the name of a hashed associative container in the Standard Template Library. It is provided by several implementors, such as the GNU C++ compiler and Microsoft's Visual C++. It is not part of the C++ Standard Library, but the C++ Technical Report 1 contains the very similar containerunordered_map
, which will be included in the upcoming C++0x standard.
So in short,
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With