c++中priority_queue
时间: 2023-11-06 12:07:59 浏览: 141
priority_queue是C++标准库中的一个容器适配器,用于实现优先级队列。优先级队列是一种特殊的队列,其中元素按照一定的优先级顺序进行排序,每次取出的元素都是优先级最高的。
在C++中,可以使用<queue>头文件中的priority_queue模板类来创建优先级队列。它支持插入元素、访问队首元素、删除队首元素等操作,并通过堆数据结构来实现高效的操作。
以下是priority_queue的一些常见操作:
1. 插入元素:可以使用push()函数将元素插入到优先级队列中。
2. 删除队首元素:可以使用pop()函数移除队首元素。
3. 访问队首元素:可以使用top()函数获得队首元素的值。
4. 判断是否为空:可以使用empty()函数来检查优先级队列是否为空。
需要注意的是,priority_queue默认是按照元素的大小进行降序排列的,即最大值在队首。如果需要按照其他的排序方式,可以通过自定义比较函数来实现。
以下是一个简单示例代码:
```cpp
#include <iostream>
#include <queue>
int main() {
std::priority_queue<int> pq;
pq.push(10);
pq.push(30);
pq.push(20);
std::cout << "队首元素: " << pq.top() << std::endl;
pq.pop();
std::cout << "队首元素: " << pq.top() << std::endl;
return 0;
}
```
输出结果:
```
队首元素: 30
队首元素: 20
```
阅读全文