结构:与队列一样,只能从队尾插入元素,从队首删除元素。
优先队列特征:队首总是队列中最大的元素,出队的规则不是先进先出,而是当前最大的元素出队。在C++中可以通过对"<"操作符重载重新定义比较的规则。
C++ STL priority_queue
头文件:queue
操作:插入元素--------------------push();
出队---------------------------pop();
读取队首元素---------------top();
判断队列是否为空---------empty();
读取队列中元素数量------size();
示例:
#include <queue>
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
priority_queue<int> pq; //定义一个优先队列
pq.push( 1 );
pq.push( 2 );
pq.push( 3 );
pq.push( 9 );
printf( "%d\n", pq.size() );
while( pq.empty() != true )
{
printf( "%d ", pq.top() );
pq.pop();
}
printf( "\n" );
return 0;
}