sort多关键字函数
    sort多关键字函数指的是在排序时,我们可以同时考虑多个关键字来进行排序。比如对于一个由多个人的信息组成的列表,我们可能需要先按照年龄排序,如果年龄相同再按照姓名排序,如果姓名也相同再按照身高排序。
    为了实现多关键字排序,我们可以使用STL库中的sort函数,并自定义一个比较函数。比较函数需要接收两个参数,然后根据我们设定的排序规则返回一个布尔值,代表这两个参数哪一个应该排在前面。
    以下是一个对于多关键字排序的示例代码:
    ```
    #include <iostream>
    #include <algorithm>
    #include <vector>
    using namespace std;
    struct person {
    string name;
    int age;
    int height;
sort函数 js    };
    bool cmp(const person& a, const person& b){
    if(a.age != b.age) return a.age < b.age;
    else if(a.name != b.name) return a.name < b.name;
    else return a.height < b.height;
    }
    int main(){
    vector<person> v = {
    {'Tom', 23, 174},
    {'Jack', 25, 170},
    {'Alice', 23, 165},
    {'Bob', 23, 180},
    {'Tony', 25, 180}
    };
    sort(v.begin(), v.end(), cmp);
    for(auto p : v){
    cout << p.name << ' ' << p.age << ' ' << p.height << endl;
    }
    return 0;
    }
    ```
    在这个示例代码中,我们定义了一个person结构体,并用cmp函数作为比较函数来对vector<person>进行排序。在cmp函数中,我们先按照年龄升序排列,如果年龄相同再按照姓名升序排列,如果姓名也相同再按照身高升序排列。
    运行上述代码,输出结果为:
    ```
    Alice 23 165
    Bob 23 180
    Tom 23 174
    Jack 25 170
    Tony 25 180
    ```
    可以看出,排序后的结果按照我们设定的多个关键字的顺序排列。

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