【问题标题】:std::unordered_map - Implicit instantiation of undefined template?std::unordered_map - 未定义模板的隐式实例化?
【发布时间】:2013-09-04 19:04:24
【问题描述】:

我学过很多语言,但我是 C++ 新手,完全不知道如何初始化类实例。以下代码在

处出错
class MyClass
{
   public:

    //Hash map variable

    //ERROR BELOW
    std::unordered_map<int, float, std::hash<int>, std::equal_to<int>, std::allocator<int>> myUnorderedMap;

}

我认为我填写的模板不正确。任何帮助都会很棒。

【问题讨论】:

  • #include &lt;unordered_map&gt;了吗?此外,只需简单的std::unordered_map&lt;int, float&gt; myUnorderedMap; 就足够了。其他三个参数有合理的默认值。
  • 就是这样,自动填充中没有弹出两个参数的模板,因为我没有包含

标签: c++ templates hashmap unordered-map


【解决方案1】:

你需要包含库头:

#include <unordered_map>

而且您不需要在声明中添加默认类型:

std::unordered_map<int, float> myUnorderedMap;

【讨论】:

  • 啊,我认为包括 std 库就足够了。非常感谢!
  • @Sequence 不客气……标准库由 100 个标头组成!
  • 分号无法包含标题,#include &lt;unordered_map&gt; 按预期工作。
猜你喜欢
  • 2013-08-10
  • 1970-01-01
  • 1970-01-01
  • 2021-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多