gpt4 book ai didi

c++ - 声明一个以我自己的类作为值类型的映射

转载 作者:行者123 更新时间:2023-11-30 01:58:08 24 4
gpt4 key购买 nike

我无法定义一个以我自己的类作为值类型的映射。这正是我正在尝试的:

我的文件.cpp

class myclass
{
public:

myclass() {}
myclass(const myclass &m):y(m.y){}
~myclass() {}
int y;

};

int main()
{
...
std::map<std:string, myclass> funcmap;
...
}

这不编译:

g++ myfile.cpp
myfile.cpp:46:33: error: wrong number of template arguments (1, should be 4)
/usr/include/c++/4.6/bits/stl_map.h:88:11: error: provided for âtemplate<class _Key, class _Tp, class _Compare, class _Alloc> class std::mapâ

如果我在映射声明中使用 int 或 string 代替 myclass,则不会出现此错误。

最佳答案

std::string 中缺少一个冒号。你写道:

std:string

应该是:

std::string

你可以看到:

#include <map>
#include <string>

class myclass
{
public:

myclass() {}
myclass(const myclass &m):y(m.y){}
~myclass() {}
int y;

};

int main()
{
std::map<std::string, myclass> funcmap;

return 0;
}

Compiles

关于c++ - 声明一个以我自己的类作为值类型的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17850504/

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