優先佇列(Priority_queue
来源:互联网 发布:物理实验室软件下载 编辑:程序博客网 时间:2024/06/03 20:34
priority_queue的函數
empty() 如果優先佇列為空,則返回真
pop() 刪除第一個元素
push() 加入一個元素
size() 返回優先佇列中擁有的元素的個數
top() 返回優先佇列中有最高優先順序的元素 //這點要注意,不是front()
要注意的是priority_queue中的三個參數,後兩個可以省去,因為有默認參數,如果有第三個參數的話,必定要寫第二個參數。
priority_queue和一般的queue不一樣的是取head元素,一般的queue是q.front(),priority_queue是q.top()
STL中priority_queue默認是大根堆
要改變priority_queue中的優先級排序方法,我看到網上一般有兩種:
方法1:小根堆:greater<TYPE>大根堆:less<TYPE>要改寫比較函數一定要把三個參數都帶進去priority_queue<int,vector<int>,greater<int> >q; //最後兩個> >之間要有空格方法2:struct cmp{ bool operator()(const int &a,const int &b) { return a>b;//按降序排序,小根堆 } };priority_queue<int,vector<int>,cmp>q; //定義的時候要把cmp放到第三個參數的位置//poj3253用到如果優先隊列的類型是struct而非integer等一般類型則可以struct mse{ char msg[30]; int pri,para,k; }message;bool operator<(mse a,mse b) //重新定義<{ if(a.pri==b.pri) return a.k>b.k; return a.pri>b.pri;} //第一優先級是pri,第二優先級是k,pri越小優先級越大;如果pri相等,則比較k,k越小優先級越大 priority_queue<mse>q; //定義mse的priority_queue//poj_2724用到
0 0
- 優先佇列(Priority_queue
- priority_queue
- priority_queue
- priority_queue
- priority_queue
- priority_queue
- priority_queue
- priority_queue
- priority_queue
- priority_queue
- priority_queue
- priority_queue
- priority_queue
- priority_queue
- priority_queue
- Priority_queue
- priority_queue
- priority_queue
- java枚举简述
- Ubuntu apt-cache命令查找可用软件包
- linux下IPTABLES配置详解
- java源码分析:深入探讨Iterator模式
- android log调试
- 優先佇列(Priority_queue
- Poll机制分析(转韦东山)
- 欧拉项目05 ruby版
- Android GUI Widget CheckBox
- Java设计模式总结
- POJ 2481 Cows
- 耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:123凡是报到“3”就退出圈子,最后留在圈子内的人就是出卖耶稣的叛徒。请找出它原来
- UVA 673 (暑假-线性表 -A - Parentheses Balance)
- java环境变量的配置