优先队列小顶堆
operator自定义运算符
typedef pair<int, int> P;
struct cmp
{
bool operator()(P p1,P p2)
{
if(p1.first==p2.first) return p1.second>p2.second;
else return p1.first > p2.first;
}
};
int main(void)
{
priority_queue<P, vector<P>, cmp> que;
que.push(P(10,20));
que.push(P(15,30));
que.push(P(20,1));
que.push(P(10,10));
P p;
while(!que.empty())
{
p=que.top();
que.pop();
cout<<p.first<<" "<<p.second<<endl;
}
}