//set容器默认排序为从小到大,掌握如何改变排序规则 //利用仿函数,可以改变排序规则 #include#include using namespace std; //仿函数:用类调用函数 //仿函数设计: class MyCompare { public: //下一行末尾加上const bool operator()(int v1, int v2)const { return v1 > v2; } }; void test01() { set s1; s1.insert(10); s1.insert(40); s1.insert(30); s1.insert(50); s1.insert(20); for (set ::iterator it = s1.begin(); it != s1.end(); it++) { cout << *it << " "; } cout << endl; //指定排序规则为从大到小 //重新指定第一步,更改第二个默认值 //注意:这里第二个默认值需求为类型,不可以是函数(函数名),故使用仿函数 set s2; s2.insert(10); s2.insert(40); s2.insert(30); s2.insert(50); s2.insert(20); for (set ::iterator it = s2.begin(); it != s2.end(); it++) { cout << *it << " "; } cout << endl; } int main() { test01(); }
黑马c++ p229 重新指定排序方式,仿函数出现问题,可能是vs2019必须要const加在仿函数后面



