c++中priority_queue的用法
时间: 2023-08-14 14:10:52 浏览: 114
c++优先队列(priority_queue)用法详解
5星 · 资源好评率100%
在C++中,`priority_queue`是一个容器适配器(container adapter),它基于堆(heap)数据结构实现。`priority_queue`允许您以优先级顺序存储元素,并且在插入和删除操作时自动维护元素的优先级。
下面是`priority_queue`的基本用法:
1. 包含头文件:
```cpp
#include <queue>
```
2. 创建一个`priority_queue`对象:
```cpp
std::priority_queue<int> pq; // 创建一个存储int类型的priority_queue
```
3. 插入元素:
```cpp
pq.push(10); // 插入元素10
pq.push(5); // 插入元素5
pq.push(15); // 插入元素15
```
4. 访问顶部元素:
```cpp
int topElement = pq.top(); // 获取优先级最高的元素(即顶部元素)
```
5. 删除顶部元素:
```cpp
pq.pop(); // 删除优先级最高的元素
```
6. 检查是否为空:
```cpp
bool isEmpty = pq.empty(); // 如果priority_queue为空,则返回true,否则返回false
```
注意事项:
- 默认情况下,`priority_queue`按照降序排序,即优先级最高的元素在顶部。如果您想要按升序排序,可以使用自定义比较函数或使用`greater`模板参数。
- `priority_queue`也可以存储自定义的数据类型,但您需要定义一个比较函数或在自定义数据类型中重载`<`运算符,以确定元素的优先级顺序。
这是`priority_queue`的基本用法,您可以根据需要进行进一步的学习和应用。
阅读全文