c++ sort string降序

2024-12-16 18:22:16
推荐回答(1个)
回答1:

sort函数默认是按升序排序的,当然你也可以按照降序排序。


不过需要你自己写比较函数,下面给你一个例子,你自己参看写。

#include 
#include 
#include 
#include 
using namespace std;

class myclass {
        public:
        myclass(int a, int b):first(a), second(b){}
        int first;
        int second;
        bool operator < (const myclass &m)const {
                return first < m.first;
        }
};

bool less_second(const myclass & m1, const myclass & m2) {
        return m1.second < m2.second;
}

int main() {
        
        vector< myclass > vect;
        for(int i = 0 ; i < 10 ; i ++){
                myclass my(10-i, i*3);
                vect.push_back(my);
        }
        for(int i = 0 ; i < vect.size(); i ++) 
        cout<<"("<        sort(vect.begin(), vect.end());
        cout<<"after sorted by first:"<        for(int i = 0 ; i < vect.size(); i ++) 
        cout<<"("<        cout<<"after sorted by second:"<        sort(vect.begin(), vect.end(), less_second);
        for(int i = 0 ; i < vect.size(); i ++) 
        cout<<"("<        
        return 0 ;
}

输出结果:

(10,0)
(9,3)
(8,6)
(7,9)
(6,12)
(5,15)
(4,18)
(3,21)
(2,24)
(1,27)
after sorted by first:
(1,27)
(2,24)
(3,21)
(4,18)
(5,15)
(6,12)
(7,9)
(8,6)
(9,3)
(10,0)
after sorted by second:
(10,0)
(9,3)
(8,6)
(7,9)
(6,12)
(5,15)
(4,18)
(3,21)
(2,24)
(1,27)