在C++中,可以使用函数指针或者Lambda表达式来自定义sort函数的比较函数。
使用函数指针:
bool customCompare(int a, int b) {
// 自定义比较函数
return a < b;
}
int main() {
vector<int> nums = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};
sort(nums.begin(), nums.end(), customCompare);
// 输出排序后的数组
for (int num : nums) {
cout << num << " ";
}
return 0;
}
使用Lambda表达式:
int main() {
vector<int> nums = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};
sort(nums.begin(), nums.end(), [](int a, int b) {
// 自定义比较函数
return a < b;
});
// 输出排序后的数组
for (int num : nums) {
cout << num << " ";
}
return 0;
}
以上代码分别使用了函数指针和Lambda表达式来自定义比较函数,并将数组按照指定的比较函数进行排序。通过修改比较函数的实现,可以实现不同的排序方式。