c++priority_queue 使用规则
时间: 2023-05-26 09:04:55 浏览: 155
priority_queue 是一个 STL 提供的容器,它是一个队列,可以在其中保存元素,并且提供了一些特殊的行为——它始终将队列中优先级最高的元素置于队列的首部。
priority_queue 可以处理数值和对象,也可以自定义排序规则,从而达到指定优先级的效果。
使用 priority_queue 时需要注意以下几点:
1. 包含头文件: `<queue>`
2. 创建一个空队列: `priority_queue<Type> q;`
3. 允许指定比较函数(自定义优先级): `priority_queue<Type, Container, Functional> q;`
4. 插入元素: `q.push(element);`
5. 访问元素:`q.top()`
6. 删除首元素:`q.pop();`
7. 判断队列为空: `q.empty();`
8. 获取队列大小: `q.size();`
下面是一个使用 priority_queue 处理整数的例子:
```cpp
#include <iostream>
#include <queue>
using namespace std;
int main()
{
priority_queue<int> pq;
pq.push(3); // 队列中加入3
pq.push(2); // 队列中加入2
pq.push(1); // 队列中加入1
while (!pq.empty()) {
cout << pq.top() << endl; // 访问队列中的首元素
pq.pop(); // 弹出队列中的首元素
}
return 0;
}
```
输出结果:
```
3
2
1
```
在默认情况下,priority_queue 中元素的比较规则是使用 `<` 运算符,也就是说,队列中的元素按降序排列。如果需要改变队列中元素的排序方式,可以传递一个比较函数,实现自定义排序。
阅读全文