c++ sort cmp函数
    在C++中,sort函数是非常常用的排序函数。它可以用来对数组、容器中的元素进行排序。当排序的对象是自定义类型时,我们需要使用cmp函数来指定排序的规则。
    cmp函数是一个自定义的比较函数,它用来比较两个元素的大小关系。当sort函数调用cmp函数时,会传递两个元素给它,cmp函数需要返回一个bool类型的值,来表示它们的大小关系。如果返回的是true,那么第一个元素就排在第二个元素的前面;如果返回的是false,那么第一个元素就排在第二个元素的后面。cmp函数需要满足严格弱序的定义,即:
    1. 如果x<y,则cmp(x,y)返回true,cmp(y,x)返回false;
    2. 如果x=y,则cmp(x,y)和cmp(y,x)都返回false;
    3. 如果x>y,则cmp(x,y)返回false,cmp(y,x)返回true。
    下面是一个简单的例子:
    ```
    #include <iostream>
    #include <algorithm>
    using namespace std;
    struct Student {
        string name;
        int age;
    };
    bool cmp(const Student& A, const Student& B) {
        if (A.age != B.age) {
            return A.age < B.age;
sort函数 js
        } else {
            return A.name < B.name;
        }
    }
    以上代码演示了如何使用自定义的cmp函数来对结构体数组进行排序。我们定义了一个Student结构体,其中包含name和age两个成员变量。我们使用了cmp函数来指定排序的规则,即按照age升序排列,如果age相同,则按照name升序排列。
    sort函数有两个参数,第一个参数为要排序的数组(或者容器)的起始位置,第二个参数为要排序的数组的末尾位置的下一个位置。第三个参数为自定义的cmp函数。以上代码中,我们使用了sort函数对数组进行排序。
    当我们运行以上代码时,输出结果如下:
    ```
    Alice 18
    Charlie 18
    Bob 19
    David 20
    ```
    我们可以看到,结构体数组按照我们指定的排序规则进行了排序。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。