c++

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

小樊
105
2024-08-07 16:01:24
栏目: 编程语言

在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进行排序。最后,我们输出排序后的结果。

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

0
看了该问题的人还看了