unordered_map放置编译错误

unordered_map emplace compile error

本文关键字:编译 错误 map unordered      更新时间:2023-10-16

我在myclass.h文件中有以下代码:

typedef std::unordered_set< int, int> Parameters;
class MyClass
{
    public:
        void myFunction();
    private:
        Parameters* m_params;
}

然后,myFunction 如下所示:

void MyClass::myFunction()
{
    ...
    m_params->emplace(1,1);
}

当我尝试编译时,我得到:

术语不计算为采用 1 个参数的函数

如果我注释放置线,错误就会消失。但是,我没有发现与此函数签名相关的任何误用:http://en.cppreference.com/w/cpp/container/unordered_map/emplace

任何帮助将不胜感激。

简单的错别字:你在代码中使用了std::unordered_set,但你的意思是std::unordered_map

在尝试将某些内容放入容器之前,您的实现无法识别任何错误设置Hash int std::unordered_set模板。然后它尝试对输入进行哈希处理,并意识到它不能将int用作函数。