#include<queue>
priority_queue與queue的不同:最大元素位于隊首
priority_queue<int> pq;
pq.push(1); //入隊
pq.pop(); //出隊
int i = pq.top(); //獲取隊首元素
pq.size(); //大小
pq.empty(); //判空
如果隊列元素是結構體,重載"<"操作符來修改優先性:
struct Info
{string name;float score;bool operator<(const Info& a) const{return score < a.score;}
}
struct myComp
{bool operator()(const int &a, const int &b){return a > b; //a靠近首側,b靠近尾側,如果為真則換位置}
}priority_queue<int, vector<int>, myComp> pq; //元素類型為int,顯示說明內部結構使vector