gpt4 book ai didi

c++ - 请求 ‘insert’中的成员 ‘x’,非类类型

转载 作者:行者123 更新时间:2023-11-30 04:15:02 25 4
gpt4 key购买 nike

我有一个名为 x 的映射变量,定义为:

    std::map <std::string, std::string, std::less<std::string>,
MyAlloc<std::pair <std::string, std::string> > >
x (std::less<std::string> (), MyAlloc <std::pair <std::string, std::string> > ());

其中 MyAlloc 是我定义的自定义 STL 分配器。当我尝试将一对插入 map 时,例如:

    x.insert(std::pair<std::string,std::string>("key","value"));

我收到以下错误:

    error: request for member ‘insert’ in ‘x’, which is of non-class type
‘std::map<std::basic_string<char>, std::basic_string<char>,
std::less<std::basic_string<char> >, MyAlloc<std::pair<std::basic_string<char>,
std::basic_string<char> > > >(std::less<std::basic_string<char> > (*)(),
MyAlloc<std::pair<std::basic_string<char>, std::basic_string<char> > > (*)())’

如果我使用 Allocator 的默认构造函数,则不会出现此错误,例如:

    std::map <std::string, std::string, std::less<std::string>,MyAlloc <std::pair <std::string, std::string> > > x;

我不确定默认构造函数的初始化是否正确.. ?

提前致谢..:)

最佳答案

这里要查找的关键字是“最烦人的解析”。 x 的定义被解析为函数声明。 Wikipedia has an example其中提到了完全相同的错误消息。

关于c++ - 请求 ‘insert’中的成员 ‘x’,非类类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18585875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com