sort對vector中pair排序+優先佇列的排序
阿新 • • 發佈:2018-12-13
//對vector中的 pair排序
vector<pair<int,char>>V;
bool cmp(const pair<int,char> a, const pair<int ,char> b)
{
return a.first<b.first; /// first 小的在前
}
sort(V.begin(),V.end(),cmp);
// priority_queue 普通優先佇列( 如 int 佇列) priority_queue<int,vector<int>,greater<int> > //greater 小的先彈出,less 為大的先彈出 priority_queue<int> //預設,大的先彈出
//priority_queue 存放 結構體
struct node
{
int v, x;
bool operator <(const node &a,const node &b)const
{
return a.v < b.v; //大的先彈出
}
};
priority_queue <node> Q;
// 優先佇列中使用 pair , 自定義排序 #define pii pair<int,int> struct cmp { bool operator() (const pii p1,const pii p2) { return p1.first > p2.first; // first 小的先彈出 } }; priority_queue<pii,vector<pii>,cmp> Q;