阅读量:0
在C++中,sort函数的比较函数cmp可以通过定义一个函数对象或者Lambda表达式来实现。比较函数cmp需要返回一个bool值,用于指定排序的顺序。
下面是一个使用函数对象定义比较函数cmp的示例:
struct cmp { bool operator()(int a, int b) { return a < b; } }; int main() { vector<int> vec = {3, 1, 4, 1, 5, 9}; sort(vec.begin(), vec.end(), cmp()); for (int num : vec) { cout << num << " "; } return 0; }
下面是一个使用Lambda表达式定义比较函数cmp的示例:
int main() { vector<int> vec = {3, 1, 4, 1, 5, 9}; sort(vec.begin(), vec.end(), [](int a, int b) { return a < b; }); for (int num : vec) { cout << num << " "; } return 0; }
在上面的示例中,比较函数cmp都是按照升序排序的规则来定义的。根据实际需要,可以修改比较函数cmp以实现不同的排序规则。