STL 是不是包含哈希表? [复制]

Posted

技术标签:

【中文标题】STL 是不是包含哈希表? [复制]【英文标题】:Does the STL contain a hashtable? [duplicate]STL 是否包含哈希表? [复制] 【发布时间】:2011-01-12 16:09:45 【问题描述】:

可能的重复:Hashtable in C++?can anybody offer a simple hash_map example in C++?

STL 是否包含哈希表的实现?

如果是这样,您能否提供一个简短的示例来说明如何使用它?

【问题讨论】:

有,我认为它被称为 hashmap 或 hash_map。 Google 应该能够帮助您。 欺骗***.com/questions/133569/hashtable-in-c。这实际上是此页面 RHS 上“相关”列表中的第一个条目。对于一个用例,***.com/questions/2179946/… 也是第一个相关问题***.com/questions/133569/hashtable-in-c的副本 【参考方案1】:

当前的标准实现不支持,STL::TR1 支持,请参阅 Unordered Map。

大多数现代编译器都有 TR1 实现,如果失败,您可以始终使用 Boost TR1 实现。

MSVC 通过服务包 1 为 VS2008 提供了它 GCC 已随 4.x 提供,但您也可以使其与 3.4.x 一起使用 AFAIR

用法与 std::map 几乎相同。

【讨论】:

std::unordered_map 现在是 C++ 11 的 STL 的一部分 - en.cppreference.com/w/cpp/container/unordered_map【参考方案2】:

一个快速的谷歌想出了this description of hash_map。

【讨论】:

我猜这被否决了,因为 hash_map 不是标准的。 我没有对你投反对票,但以后请提供一两句话解释“this”链接到什么。 此链接已失效。请不要出于这个确切原因发布链接作为答案。【参考方案3】:

虽然不是 STL 标准的正式组成部分,但 hash_map 和 hash_set 通常用于缩短搜索时间......

http://msdn.microsoft.com/en-us/library/0d462wfh%28VS.80%29.aspx

所以,长话短说——不。

【讨论】:

std::unordered_map 现在是 C++ 11 的 STL 的一部分 - en.cppreference.com/w/cpp/container/unordered_map

以上是关于STL 是不是包含哈希表? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

STL详解(十三)—— 用一个哈希表同时封装出unordered_map和unordered_set

人们说“搜索哈希表”是啥意思? [复制]

在啥情况下我应该使用尝试而不是二叉树/哈希表? [复制]

哈希表—位图

创建一个包含两个数组的哈希表

[ESTL] lc645. 错误的集合(STL+数学+哈希表)