STL中的priority_queue

来源:互联网 发布:买家可以开通淘宝客吗 编辑:程序博客网 时间:2024/06/15 09:12

       和一般的queue不一样, 优先队列的“最大”元素永远位于队首, 之所以“最大”加了引号,是因为: 在默认情况下, 这个“最大”就是指最大, 但程序猿自己可以对"最大"给出新的定义, 此时, “最大”可能是最小。

       下面, 我们看看默认情况下的优先队列:

#include <iostream>#include <queue> // 注意, 不是#include<priority_queue>using namespace std;int main(){ priority_queue<int> pq;pq.push(2);pq.push(1);pq.push(4);pq.push(3);while(!pq.empty()){cout << pq.top() << endl; // 4  3  2  1pq.pop();}return 0;}
       

      上面已经说了, 用户可以自定义“最大”。如果大家需要用到自定义的“最大”, 可以找度娘或者谷哥哥, 比如: 可以利用重载“<”操作符来定义优先级别, 也可以利用重载"()"来定义优先级。

       好吧, priority_queue先说到这里。

0 0
原创粉丝点击