我们知道当priority_queue不指定排序方式是默认是大根堆,但如果存储的是pair类型的时候呢?
int main()
{
priority_queue<pair<int, int> > myqueue;//这里>>之间加空格,防止误认为是右移运算符
myqueue.emplace(5, 7);//这里不能写push,emplace是先构造再插入
myqueue.emplace(4, 8);
myqueue.emplace(5, 8);
myqueue.emplace(4, 7);
while (!myqueue.empty())
{
cout << myqueue.top().first << " " << myqueue.top().second << endl;
myqueue.pop();
}
return 0;
}
运行结果:
可见默认排序方式是先以first排序再以second排序