问题描述:把set容器的内置排序算法改变时,使用仿函数 但是出现了一下错误
修改前
//set容器排序
class MyCompare {
public:
bool operator()( int v1, int v2) {
return v1 > v2;
}
};
void test01() {
//指定排序规则为从大到小
set<int,MyCompare> s2;
//插入数据
s2.insert(40);
s2.insert(50);
s2.insert(20);
s2.insert(10);
for (set<int, MyCompare>::iterator it = s2.begin(); it != s2.end(); it++) {
cout << *it << endl;
}
}
int main() {
test01();
system("pause");
return 0;
}
以上代码出现一下错
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C3848 具有类型“const MyCompare”的表达式会丢失一些 const-volatile 限定符以调用“bool
MyCompare::operator ()(int,int)” Project02 E:\develop\visual studio\visual
studio\VC\Tools\MSVC\14.32.31326\include\xutility 1451
修改后 加const
class MyCompare {
public:
bool operator()( int v1, int v2) const{//在这里加const
return v1 > v2;
}
};