如何使用带有用户定义类型作为键的std:map?我想知道为什么我不能在用户定义的类中使用STL映射。当我编译下面的代码时,我会得到以下神秘的错误消息。什么意思?另外,为什么它只发生在用户定义的类型上?(将基元类型用作键时是可以的。)C:\MinGW\bin..\lib\gcc\mingw32\3.4.5.\include\c++\3.4.5\bits\stl_function.h||In成员函数`boolstd:less<_tp>:Operator()(const_tp&,const_tp&)const[with_tp=Class 1]从`_tp和std:map<_key,_tp,_C:\MinGW\bin..\lib\gcc\mingw32\3.4.5.\include\c++\3.4.5\bits\stl_map.h|338|instantiated>:操作符[](const_key&)[With_key=Class 1,_tp=int,_Compare=std:less,_alloc=std:allocator>]‘C:\MinGW\bin..\lib\gcc\mingw32\3.4.5.\include\c++\3.4.5\bits\stl_map.h|338|instantiatedC:\Users\Admin\Documents\dev\sandbox\sandbox.cpp|24|instantiated从这里开始C:\MinGW\bin..\lib\gcc\mingw32\3.4.5.\include\c++\3.4.5\bits\stl_function.h|227|error:不匹配“运算符<”中的“_x<_y‘\x=生成已完成:1错误,0警告=x#include <iostream>#include <map>using namespace std;class Class1{public:
Class1(int id);private:
int id;};Class1::Class1(int id): id(id){}int main(){
Class1 c1(1);
map< Class1 , int> c2int;
c2int[c1] = 12;
return 0;}
- 3 回答
- 0 关注
- 586 浏览
添加回答
举报
0/150
提交
取消