1. 程式人生 > >優先佇列priority_queue基本操作

優先佇列priority_queue基本操作

基本操作

priority_queue<int>q;//建立int型別的優先佇列q,當然也可以是結構體型別
q.empty() //佇列為空則返回真,非空返回假 
q.pop()   // 刪除佇列的第一個元素  
q.push()  //新增一個元素   
q.size()  //返回佇列中的元素數量   
q.top()   //返回佇列中優先順序最高的一個元素 

預設情況下,佇列內元素大的優先順序高,會先出佇列。

通過過載操作符可以自定義優先順序

struct node
{
    int x;
    int y;
    int time;
    friend bool operator
< (node n1, node n2) { return n1.time>n2.time; } };

通過對<的過載,實現佇列內按照time的大小升序排列,此時time小的優先順序高,優先順序高的會先出佇列。
不要過載>,因為標準庫是預設使用<來確定它們之間的優先順序。
當然,也可以模仿sort函式中的cmp函式,寫出多級排序,效果都是一樣的。
sort函式http://blog.csdn.net/qq_32680617/article/details/50629215