自定义优先队列, sort对vector中pair,结构体的排序

///vector中的 pair排序

vector<pair<int,char>>V;
bool judge(const pair<int,char> a, const pair<int ,char> b) {
    return a.first<b.first;
}

sort(V.begin(),V.end(),judge);


///vector 存放 结构体,排序

struct xx{
    data n1;
    data n2;
}
bool cmp(xx A, xx B){
    return A.n1<B.n1; //n1小的排在前面

}

vector<xx>V;

sort(V.begin(),V.end(),cmp);


///priority_queue 存放 结构体

struct xx{
    data n1;
    data n2;
    friend bool operator < (const xx &A,const xx &B){
        return A.n1<B.n1; //大的先弹出
    }
}

priority_queue<xx> Q;


/// priority_queue 普通优先队列( 如 int 队列)

priority_queue<int,vector<int>,greater<int>> //greater 小的先弹出,less 为大的先弹出
priority_queue<int>                          //默认,大的先弹出



猜你喜欢

转载自blog.csdn.net/no_o_ac/article/details/80880871