代码块在此行上引发错误:
set<string,cmpi> m;
其中 cmpi 函数为:
int cmpi(string one , string two )
{
one = toLowerCase(one);
two = toLowerCase(two);
if(two == one)
return 0;
else
if (one < two )
return -1;
else
return 1;
}
它说(错误):
我的cmpi函数的返回值是否包含某些内容?
最佳答案
确实。std::set
期望使用类型,而不是函数指针(值):
int cmpi(string one, string two);
typedef int cmpi_t(string one, string two); // the type of cmpi
std::set<string, cmpi_t*> m (&cmpi);