priority_queue 容器
priority_queue 定义
priority_queue 优先队列器和队列一样,只能从队尾插入元素,从队首删除元素。但是它内部会保持让最大的元素总是在队首,所以出队的时候,不再是按照先进先出的原则进行,而是将最大的元素出队。
代码
priority_queue默认支持的是大根堆,就是保持队首一直是最大的元素
priority_queue<int> pq;
pq.push(5);
pq.push(7);
pq.push(3);
pq.push(9);
while (!pq.empty()){
cout << pq.top() << ' ';
pq.pop();
}
//9 7 5 3
让priority_queue支持小根堆
priority_queue<int,vector<int>,greater<int> > pq;
pq.push(5);
pq.push(7);
pq.push(3);
pq.push(9);
while (!pq.empty()){
cout << pq.top() << ' ';
pq.pop();
}
//3 5 7 9