C++ sort 排序(降序、升序)使用总结

https://blog.csdn.net/zhangpiu/article/details/50564064

一、升序

    C++ sort 函数十分方便,可以对内置类型也可对自定义类型进行快速排序,内置类型的使用比较简单,下面主要讨论自定义类型的排序,一般有如下几种使用方法:
1.1 重载比较操作符

    比如,我们现有一批学生,要根据他们的成绩进行升序排序,成绩如果相等则根据名字升序排序,那么我们可以如下操作:
 

struct Student{
    string name;
    int grade;
 
    Student(string name, int grade) : name(name), grade(grade){}
 
    bool operator < (const Student& rhs) const{
        return grade < rhs.grade
        || (grade == rhs.grade && name < rhs.name);
    }
 
    friend void operator << (ostream& output, const Student& s){
        output << s.name << " " << s.grade << endl;
    }
};
int main()
{
    vector<Student> vec;
 
    vec.emplace_back("Jack", 20);
    vec.emplace_back("John", 30);
    vec.emplace_back("Amy", 20);
    vec.emplace_back("Bill", 90);
 
    cout << "Before:" << endl;
    for(auto& s : vec){
        cout << s;
    }
 
    sort(begin(vec),end(vec));
 
    cout << endl << "After:" << endl;
    for(auto& s : vec){
        cout << s;
    }
 
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值