在C++中,可以使用sort
函数来对数组或者容器进行排序。如果想要自定义排序规则,可以使用函数指针、函数对象或者lambda表达式来实现。
sort
函数。bool compare(int a, int b) {
// 自定义比较规则,例如按照绝对值进行排序
return abs(a) < abs(b);
}
int main() {
int arr[] = {-1, 2, -3, 4, -5};
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, arr + n, compare);
// 输出排序结果
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
()
运算符,使其接受两个参数,并返回一个布尔值。然后创建该类的对象,并将对象作为第三个参数传递给sort
函数。struct Compare {
bool operator()(int a, int b) {
// 自定义比较规则,例如按照绝对值进行排序
return abs(a) < abs(b);
}
};
int main() {
int arr[] = {-1, 2, -3, 4, -5};
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, arr + n, Compare());
// 输出排序结果
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
sort
函数的第三个参数位置使用lambda表达式来定义比较规则。int main() {
int arr[] = {-1, 2, -3, 4, -5};
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, arr + n, [](int a, int b) {
// 自定义比较规则,例如按照绝对值进行排序
return abs(a) < abs(b);
});
// 输出排序结果
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
以上是三种常见的自定义排序规则的方法。根据具体需求选择合适的方法。