代码块在此行上引发错误:

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);

10-04 14:14