priorityqueue stl
时间: 2023-10-29 19:00:38 浏览: 89
STL(Standard Template Library)中的 `priority_queue` 是一个优先级队列容器,它是基于堆(heap)实现的。
优先级队列是一种特殊的队列,其中的元素按照一定的优先级顺序排列。在 `priority_queue` 中,每个元素都有一个相关的优先级值,较高优先级值的元素排在较低优先级值的元素之前。当你插入新元素时,它会自动根据优先级进行排序。
`priority_queue` 提供了以下常用操作:
- `push()`: 向优先级队列中插入一个元素。
- `pop()`: 从优先级队列中删除优先级最高的元素。
- `top()`: 返回优先级最高的元素,但并不将其从队列中删除。
- `empty()`: 检查优先级队列是否为空。
- `size()`: 返回优先级队列中元素的数量。
以下是一个使用 `priority_queue` 的简单示例代码:
```cpp
#include <iostream>
#include <queue>
int main() {
std::priority_queue<int> pq;
pq.push(5);
pq.push(2);
pq.push(10);
pq.push(7);
while (!pq.empty()) {
std::cout << pq.top() << " ";
pq.pop();
}
return 0;
}
```
输出结果为:10 7 5 2,因为在默认情况下,`priority_queue` 是按照降序排列的。
希望这能帮到你!如果你有任何其他问题,请随时提问。
阅读全文