【问题标题】:how to sort a vector custom field? [duplicate]如何对矢量自定义字段进行排序? [复制]
【发布时间】:2022-02-03 23:07:21
【问题描述】:

我有一个将学生存储为对象的向量,每个学生对象都有包含用户输入的成绩的数据,用户输入 4 个成绩并获得总成绩。我希望能够在从最高到最低的列表中对这些数据进行排序,但我无法弄清楚,这就是我到目前为止所拥有的函数但是它没有运行它返回 cout 不匹配操作数的错误.我确信有更好的方法,任何帮助将不胜感激!

    static void compare(vector<Student>& students) {
    vector<Student> students{};

    sort(students.begin(), students.end());

    cout << "Sorted \n";
    for (auto x : students) {
        cout << x << " ";
    }

}

【问题讨论】:

    标签: c++ sorting vector compare


    【解决方案1】:

    编译器不知道如何比较学生。有几种选择。首先,你可以定义一个比较运算符:

    bool operator < (const Student&, const Student&);
    

    接下来,您可以为 sort 函数的一次调用定义一个比较操作:

    sort(students.begin(), students.end(), [](auto &a, auto &b) { return ...; });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-17
      • 2012-09-22
      • 1970-01-01
      • 2023-01-20
      • 2021-09-10
      • 1970-01-01
      • 2015-11-30
      • 1970-01-01
      相关资源
      最近更新 更多