std::unordered_map——未定义模板的隐式实例化?

4

我曾经使用过很多编程语言,但是对于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;

}

我觉得我填写模板的方式不正确,希望能得到帮助。非常感谢。


6
你是否已经包含了 <unordered_map> 库?另外,简单的 std::unordered_map<int, float> myUnorderedMap; 就足够了,其他三个参数有合理的默认值。 - Igor Tandetnik
就是这样,由于我没有包含<unordered_map>,所以两个参数的模板没有在自动填充中弹出。 - Sequence
1个回答

3

您需要包含库头文件:

#include <unordered_map>

您在声明中不需要放置默认类型:

std::unordered_map<int, float> myUnorderedMap;

啊,我以为包含标准库就足够了。非常感谢! - Sequence
@Sequence 不客气...标准库由数百个头文件组成! - Paul Evans
1
分号在包含头文件时是无用的,#include <unordered_map> 的效果如预期。 - Richard Dally

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接