STL中的priority_queue

       和一般的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  1
		pq.pop();
	}

	return 0;
}
       

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

       好吧, priority_queue先说到这里。

你可能感兴趣的:(STL中的priority_queue)