C++priority_queue
时间: 2023-08-26 21:17:54 浏览: 105
C++中的priority_queue是一个优先队列容器,它使用堆(默认是大根堆)的数据结构来维护元素的顺序。priority_queue提供了对队列的基本操作,例如插入元素、访问顶部元素和删除顶部元素等。
以下是priority_queue的基本用法:
```cpp
#include <iostream>
#include <queue>
int main() {
std::priority_queue<int> pq;
// 插入元素
pq.push(5);
pq.push(2);
pq.push(7);
pq.push(1);
// 访问顶部元素
std::cout << "Top element: " << pq.top() << std::endl;
// 删除顶部元素
pq.pop();
// 访问新的顶部元素
std::cout << "Top element after pop: " << pq.top() << std::endl;
return 0;
}
```
在上述代码中,我们使用`std::priority_queue`定义了一个名为`pq`的优先队列,默认为大根堆。通过调用`push()`函数,我们可以向优先队列中插入元素;通过调用`top()`函数,我们可以访问优先队列的顶部元素;通过调用`pop()`函数,我们可以删除优先队列的顶部元素。
需要注意的是,默认情况下,`std::priority_queue`使用`std::less`作为比较函数,即大根堆。如果需要实现小根堆,可以通过提供自定义比较函数来实现,就像我之前的回答中所示。
希望这能帮助到你!如果你有其他问题,请随时提问。
阅读全文