priority_queue用法 ----- HDU 4006 The kth great number

priority_queue是很有用的的一个容器,你可以定义以什么为优先.所以你可以定义方法,也就是一个函数类对象,

C++中有一个<fanction>里面定义了一些方法 如:less<class T> 这是按值大的优先 greater<class T>这是按值小的优先,
priority_queue<class T, class comp=less< class Y>> 默认的是以大为先, 方法有 push() , pop(), empty(), front().等等

 

#include <iostream>
#include
<cstdio>
#include
<algorithm>
#include
<queue>
#include
<vector>
usingnamespace std;
int main()
{
int n,k;
while(scanf("%d %d",&n,&k) ==2)
{
priority_queue
<int,vector<int>,greater<int>> Q;
for(int i =1;i <= n;i++)
{
char opt;
scanf(
" %c",&opt);
if(opt =='I')
{
int a;
scanf(
"%d",&a);
Q.push(a);
if(Q.size() > k)
Q.pop();
}
else
printf(
"%d\n",Q.top());
}
}
}

 

posted on 2012-03-07 12:11  万里心晴  阅读(147)  评论(0编辑  收藏  举报