map的Key参数可以是类吗?
如:
class cls
{
public:
void print(int i){printf(i);};
}
int main()
{
std::map<cls,int> mymap;
return 0;
}
这段程序是否有问题?
上面的cls作为Key来说需要满足
1. 支持 < 运算符,或者给定了<判断式,map内部是红黑树需要用<,很明显你的cls不满足这个条件。
2. 支持拷贝运算符,以及赋值运算(=) ,key在容器内是相互拷贝的。你的这个类编译器都为你生成了,所以没问题。