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在容器内是相互拷贝的。你的这个类编译器都为你生成了,所以没问题。


posted @ 2014-07-22 16:33  hxb316  阅读(603)  评论(0编辑  收藏  举报