c++priority_queue
时间: 2024-03-24 07:34:34 浏览: 79
C++中的`priority_queue`是一个容器适配器,它提供了一种优先级队列的数据结构。优先级队列是一种特殊的队列,其中的元素按照一定的优先级进行排序,每次取出的元素都是优先级最高的。
在C++中,`priority_queue`是通过堆(heap)来实现的,默认情况下是一个最大堆(即优先级最高的元素在顶部)。它提供了以下几个主要的操作:
1. `push()`:将元素插入到优先级队列中。
2. `pop()`:移除优先级最高的元素。
3. `top()`:获取优先级最高的元素。
4. `empty()`:检查优先级队列是否为空。
5. `size()`:返回优先级队列中元素的个数。
`priority_queue`可以存储任意类型的元素,但是默认情况下使用`<`运算符来比较元素的优先级。如果需要自定义元素的比较方式,可以通过重载`<`运算符或者提供自定义的比较函数来实现。
下面是一个示例代码,演示了如何使用`priority_queue`:
```cpp
#include <iostream>
#include <queue>
int main() {
std::priority_queue<int> pq;
pq.push(30);
pq.push(10);
pq.push(50);
while (!pq.empty()) {
std::cout << pq.top() << " ";
pq.pop();
}
return 0;
}
```
输出结果为:50 30 10,可以看到元素按照降序排列。
阅读全文