c++ priorityqueue
时间: 2023-10-29 15:00:08 浏览: 58
C++中的优先队列(Priority Queue)是一种特殊的队列数据结构,它允许你在插入元素的时候指定一个优先级,然后按照优先级进行元素访问。在C++中,优先队列是通过 std::priority_queue 类来实现的,它是标准模板库(STL)的一部分。
下面是一个使用优先队列的示例代码:
```cpp
#include <iostream>
#include <queue>
int main() {
// 创建一个优先队列,默认为大顶堆
std::priority_queue<int> pq;
// 插入元素
pq.push(3);
pq.push(1);
pq.push(4);
pq.push(1);
pq.push(5);
// 访问队首元素(最大值)
std::cout << "Top element: " << pq.top() << std::endl;
// 删除队首元素
pq.pop();
// 遍历并访问剩余元素
while (!pq.empty()) {
std::cout << pq.top() << " ";
pq.pop();
}
std::cout << std::endl;
return 0;
}
```
以上代码创建了一个整型的优先队列,并依次插入了一些元素。通过调用 `top()` 方法可以访问队列中的最大值,而通过调用 `pop()` 方法可以删除队首元素。最后,使用一个循环遍历并打印出队列中剩余的元素。
请注意,以上示例中的优先队列是默认的大顶堆,即优先级高的元素会被放在队列前面。如果需要使用小顶堆,可以将 `std::priority_queue<int>` 修改为 `std::priority_queue<int, std::vector<int>, std::greater<int>>`。