Quick question...Is hash_map part of the STL?
相关问题
- Sorting 3 numbers without branching [closed]
- How to compile C++ code in GDB?
- Why does const allow implicit conversion of refere
- thread_local variables initialization
- What uses more memory in c++? An 2 ints or 2 funct
相关文章
- Class layout in C++: Why are members sometimes ord
- How to mock methods return object with deleted cop
- Which is the best way to multiply a large and spar
- C++ default constructor does not initialize pointe
- Selecting only the first few characters in a strin
- What exactly do pointers store? (C++)
- Converting glm::lookat matrix to quaternion and ba
- What is the correct way to declare and use a FILE
The problem is that there is no agreed upon meaning for the term STL. Is
hash_map
part of Standard C++? No, it isn't.unordered_map
will be part of the new C++ standard, however, and is a map implemented using hashing.Quoting Wikipedia (emphasis added):
From the STL page:
...and then from the hash_map page
So in short,
No...Hash_map is not part of the STL standard.
hash_map is a part of STL, but not a part of Standard C++(C++11). And there is a similar implementation of hash_map named "std::unordered_map" in standard C++: http://www.cplusplus.com/reference/unordered_map/unordered_map/
Currently, GNU C++ and MSVC++ have implemented hash_map for compiler extension, as well as Boost. Meanwhile, SGI has its own implementation for hash_map. You can refer to http://www.sgi.com/tech/stl/hash_map.html for details.
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 thestd
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.Yes,
hash_map
is part of the STL. However, it is not part of C++03's standard library.