声明一个以我自己的类作为值类型的映射
Declaring a map with my own class as the value type
我无法用自己的类作为值类型来定义映射。这正是我正在尝试的:
myfile.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或字符串代替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;
}
编译
相关文章:
- 将类型映射到整数值后,如何在给定整数值的情况下恢复类型?
- C++17:在编译时将类型映射到整数值
- 为C++重载函数创建SWIG类型映射
- 返回各种类型的函数的SWIG类型映射
- 类型映射资源并将列表转换为矢量(并返回)
- 有没有办法在 C++17 中创建编译时类型映射以进行类型检查?
- 如何在OpenCV中使用双类型映射进行重新映射
- SWIG 多参数类型映射适用于函数,但如果有多个构造函数,则不适用于构造函数
- Swig:如何类型映射c ++字符串常量和python字符串?
- SWIG 类型映射的 python 列表到双倍 *
- SWIG -- 在扩展中使用类型映射
- 嵌入的多个变体类型映射
- SWIG类型映射中的内存释放
- 您将如何为 std::list<std::string> 创建一个类型映射,以在<String> List in C++ 中为 Java 在 SWIG 中创建?
- SWIG-为具有四个参数的函数创建一个类型映射,该参数传递一个字节数组
- 在C++中将类类型映射到其他类类型
- C func 到C++具有非双射参数类型映射的实例成员蹦床
- Swig 界面中的类型映射错误
- 如何在 swig 中引用类型映射类
- 将实例变量类型映射到模板成员函数