【C++】Vector排序

1.普通类型(由大到小排序)

int main()
{
    sort(v.begin(),v.end());
}

2.普通类型(由小到大排序)

bool comp(const int &a,const int &b)
{
    return a>b;
}
int main()
{
    sort(v.begin(),v.end(),comp);
}

 

3.结构体类型

复制代码
struct student
{
     char name[10];
     int score;
};

bool comp(const student &a, const student &b)
{
    return a.score < b.score; //由小到大排序
}
 
int main()
{
    vector<student> vectorStudents;
    sort(vectorStudents.begin(),vectorStudents.end(),comp);
}
复制代码

 

复制代码
struct Stu
{
    string 姓名;
    int 语文成绩;
    int 数学成绩;
    int 英语成绩;
};


bool comp(const Stu& a, const Stu& b)
{
    return a.数学成绩 > b.数学成绩; //由大到小排序
}

void main()
{
    UF_initialize();

    vector<Stu> stus;
    
    Stu xm;
    xm.姓名 = "小明";
    xm.语文成绩 = 95;
    xm.数学成绩 = 90;
    xm.英语成绩 = 91;

    Stu xh;
    xh.姓名 = "小红";
    xh.语文成绩 = 85;
    xh.数学成绩 = 99;
    xh.英语成绩 = 81;

    Stu xb;
    xb.姓名 = "小北";
    xb.语文成绩 = 75;
    xb.数学成绩 = 70;
    xb.英语成绩 = 95;
    
    stus.push_back(xm);
    stus.push_back(xh);
    stus.push_back(xb);

    // vector 结构体 排序,根据结构体中的某个元素排序
    
    //输出
    print("排序前\n");
    for (auto stu : stus)
    {
        print(stu.姓名);
        print(stu.数学成绩);
    }
    //按照数学成绩排序
    sort(stus.begin(), stus.end(), comp);

    print("排序后(由大到小排序)\n");
    for (auto stu : stus)
    {
        print(stu.姓名);
        print(stu.数学成绩);
    }

    UF_terminate();
}

复制代码

 

posted @   王牌飞行员_里海  阅读(5268)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示