Enclave_ 2022-06-27 19:22 采纳率: 88.5%
浏览 18
已结题

vector 存放对象的排序问题

我首先定义了一个student类 内有整型学号 整型分分数等数据
然后我想使用

vector<student> stu

中的sort函数进行排序 排序的根据是分数对vector进行降序排序
但是当我写出

sort(stu.rbegin(),stu.rend())

编译报错了
所以该如何仅根据每个对象中的分数进行排序呢

下面是我的代码

#include <bits/stdc++.h>
using namespace std;
class student
{
public:
    int no;
    int score;
    student(int No=0, int Score=0)
    {
        no = No;
        score = Score;
    }
};
int main()
{
    int no;
    int score;
    vector<student> stu;
    for (int i = 0; i < 3; i++)
    {
        cin >> no;
        cin >> score;
        student temp(no,score);
        stu.push_back(temp);
    }
    sort(stu.rbegin(),stu.rend());
}

  • 写回答

2条回答 默认 最新

  • 关注

    vector排序需要定义一个自定义的排序函数,

    #include <bits/stdc++.h>
    using namespace std;
    class student
    {
    public:
        int no;
        int score;
        student(int No=0, int Score=0)
        {
            no = No;
            score = Score;
        }
    };
    
    bool compareByscore(student stu1,student stu2)
    {
        return stu1.score < stu2.score;
    }
    
    int main()
    {
        int no;
        int score;
        vector<student> stu;
        for (int i = 0; i < 3; i++)
        {
            cin >> no;
            cin >> score;
            student temp(no,score);
            stu.push_back(temp);
        }
        sort(stu.rbegin(),stu.rend(), compareByscore);
    
        for (vector<student>::iterator it = stu.begin(); it != stu.end(); it++) {
            cout << "学号:" << it->no  << " 成绩:" << it->score << endl;
        }
        return 0;
    }
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月5日
  • 已采纳回答 6月27日
  • 创建了问题 6月27日

悬赏问题

  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目