本文共 527 字,大约阅读时间需要 1 分钟。
和一般的queue不一样, 优先队列的“最大”元素永远位于队首, 之所以“最大”加了引号,是因为: 在默认情况下, 这个“最大”就是指最大, 但程序猿自己可以对"最大"给出新的定义, 此时, “最大”可能是最小。
下面, 我们看看默认情况下的优先队列:
#include#include // 注意, 不是#include using namespace std;int main(){ priority_queue pq; pq.push(2); pq.push(1); pq.push(4); pq.push(3); while(!pq.empty()) { cout << pq.top() << endl; // 4 3 2 1 pq.pop(); } return 0;}
上面已经说了, 用户可以自定义“最大”。如果大家需要用到自定义的“最大”, 可以找度娘或者谷哥哥, 比如: 可以利用重载“<”操作符来定义优先级别, 也可以利用重载"()"来定义优先级。
好吧, priority_queue先说到这里。
转载地址:http://wugvi.baihongyu.com/