简单问题...hash_map 是 STL 的一部分吗?
由于一个常见的误解, 你可能会认为C++标准库是"STL",或者你工具链中实现的C++标准库的某些部分是"STL实现"。
它不是。
同时,令人遗憾的是,MSVC++和GCC(将hash_map
实现为编译器特定扩展)将其放置在std
命名空间中,这不仅极具误导性,而且违反了标准。*叹气*
C++11引入了std::unordered_map
,它与hash_map
有异曲同工之妙。
#include <hash_map>
/ std::hash_map<a, b> x
,但也不会更难... - Tony Delroyhash_map
是否是标准 C++ 的一部分呢?答案是否定的。然而,unordered_map
将会成为新版 C++ 标准的一部分,并且是一个使用哈希实现的映射表。hash_map
。 - James Kanze是的,hash_map
是 STL 的一部分。然而,它 不是 C++03 标准库的一部分。
hash_map 是 STL 的一部分,但不是标准 C++(C++11)的一部分。标准 C++ 中有一个类似的实现叫做“std::unordered_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标准的一部分。
unordered_map
。你真的需要一个哈希表吗?如果不是,看看std::map
是否符合你的实际需求。 - Martin Yorkhash_map
是STL的一部分。 - Alexandre C.hash_map
,STL有。 (未来的C++和Boost有unordered_map
,即哈希映射。) - GManNickG