在C++中,sort()函数可以使用比较函数来自定义排序规则。比较函数是一个可以接受两个参数的函数,其中第一个参数是要比较的元素的引用,第二个参数是另一个要比较的元素的引用。比较函数应该返回一个布尔值,表示第一个参数是否应该排在第二个参数之前。
当调用sort()函数时,可以通过传递一个比较函数作为第三个参数来指定排序规则。比较函数可以是自定义的函数,也可以是lambda表达式。
例如,如果要对一个整数数组进行降序排序,可以使用以下比较函数:
bool compare(int a, int b) {
return a > b;
}
int main() {
int arr[] = {5, 2, 7, 1, 9};
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, arr + n, compare);
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
在上面的例子中,compare()函数将两个整数作为参数,并返回a是否大于b,从而实现了降序排序。传递compare函数给sort()函数,即可按照指定的规则对数组进行排序。