如何通过cmp函数实现C++中的自定义排序规则

avatar
作者
筋斗云
阅读量:0

在C++中,可以通过定义一个比较函数(或者使用lambda表达式)并将其作为参数传递给标准库中的排序函数来实现自定义排序规则。比较函数可以使用任何自定义的规则来决定元素的顺序。

以下是一个示例,演示如何通过cmp函数实现自定义排序规则:

#include <iostream> #include <vector> #include <algorithm>  // 定义比较函数 bool cmp(int a, int b) {     // 按照元素的绝对值大小进行排序     return abs(a) < abs(b); }  int main() {     std::vector<int> vec = {3, -1, 2, -4, 5};      // 使用自定义的比较函数进行排序     std::sort(vec.begin(), vec.end(), cmp);      // 输出排序后的结果     for (int num : vec) {         std::cout << num << " ";     }     std::cout << std::endl;      return 0; } 

在上面的示例中,我们定义了一个比较函数cmp,该函数根据元素的绝对值大小进行排序。然后我们将这个比较函数作为参数传递给std::sort函数,以便按照自定义规则对vector进行排序。最后,我们输出排序后的结果。

通过定义不同的比较函数,可以实现各种自定义的排序规则。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!