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());
}
}
}