快速问题... hash_map是STL的一部分吗?
The STL有hash_map
,但是C ++标准库does not。
由于a common misconception,您可能会将C ++标准库视为“STL”,或者将工具链的C ++标准库实现的部分视为“STL实现”。
它不是。
MSVC ++和GCC(实现hash_map
作为特定于编译器的扩展)place it in the std
namespace也是一个很遗憾,它不仅具有高度误导性,而且对于标准而言也是非法的。 *叹*
C ++ 11引入了std::unordered_map
,它没有什么不同。
问题在于STL这个术语没有达成一致意义。 hash_map
是标准C ++的一部分吗?不,不是。然而,unordered_map
将成为新C ++标准的一部分,并且是使用散列实现的映射。
是的,hash_map
是STL的一部分。但是,它不是C ++ 03标准库的一部分。
hash_map是STL的一部分,但不是标准C ++(C ++ 11)的一部分。在标准C ++中有一个名为“std :: unordered_map”的hash_map的类似实现:http://www.cplusplus.com/reference/unordered_map/unordered_map/
目前,GNU C ++和MSVC ++已经为编译器扩展实现了hash_map,以及Boost。同时,SGI有自己的hash_map实现。有关详细信息,请参阅http://www.sgi.com/tech/stl/hash_map.html。
否...... Hash_map不是STL标准的一部分。