问个关于STL的小问题
程序如下:
map<char*,int,mycmp> ph;//一个电话本map,mycmp用来比较char*的类,重载了()参数类型为(const char*,const int),char*是名字
char name[20];
int num=0;
do{
cin>>name;//输入姓名
cin>>num;
ph[name]=num;
}while(num>0);//无论输入多少电话记录,ph中只能保存最后一次的输入结果,也就是说ph中永远只有一条记录,这是这什么?我把循环中的ph[name]=num;换成:ph.insert(make_pair(name,num));//编译出错,说不能把char*转换成const cahr[20]什么的,总之是类型转换错误。 但是我把map<char*,int,mycmp>换成map<string,int>后就没有问题了,好象是char*做为键类型出了问题,但不知道是什么问题,哪位帮我解说一下。