【问题标题】:identifier "hash_map" is undefined?标识符“hash_map”未定义?
【发布时间】:2015-03-03 11:56:05
【问题描述】:

我需要使用一个字典,它将ints 对映射到不同的ints 对。关于该主题的其他 SO 问题声称 C++ 具有 std::maphash_map,但由于某种原因,我的代码似乎无法识别它。

为了试一试,我复制了一个我找到的随机代码:

hash_map<const char*, int, hash<const char*>, eqstr> months;

Visual Studio 声称:identifier "hash_map" is undefined

知道这意味着什么,我该如何解决?自从我上次使用 C++ 以来已经有很长时间了,如果问题是基本的,很抱歉......谢谢。

【问题讨论】:

  • “为了试一试,我复制了一个我找到的随机代码”——哦,是的,这不是编程的工作原理。
  • 嘿...这有什么问题?当我第一次使用某些东西时,是的,我会复制一些代码,玩弄它,当我有足够的信心使用它时,我会自己编写东西。有这么糟糕吗……? ;)

标签: c++ dictionary hash


【解决方案1】:

hash_mapSTL 中,这是一个古老的库,它构成了标准 C++ 库部分的基础,但不在标准库本身中。

从 C++11 开始,标准库有一个类似的容器,称为 unordered_map

【讨论】:

  • 好的...所以我尝试了这个:std::unordered_map&lt;std::string, int&gt; map;,现在我得到了:std namespace has no member "ordered_map"。我是不是用错了?
  • @Cheshie:你#include &lt;unordered_map&gt;了吗?要了解标准库,最好使用good bookonline reference,而不是尝试编译来源可疑的随机代码。
  • 感谢提问;不,我没有(尴尬!):P 谢谢!并感谢您的参考。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多