c plus plus 14 的priority_queue怎么使用
时间: 2023-11-04 16:04:42 浏览: 80
C++14 中的 `priority_queue` 是一个 STL 容器,实现了一个堆数据结构。它是一个带有许多有用方法的容器,其中包括 `push()`,`pop()` 和 `top()`。在 `priority_queue` 中,元素总是按照优先级顺序排序,具有最高优先级的元素始终在最前面。
下面是一个使用 `priority_queue` 的简单示例:
```cpp
#include <iostream>
#include <queue>
int main() {
std::priority_queue<int> myPQ;
myPQ.push(10);
myPQ.push(20);
myPQ.push(30);
std::cout << "Top element: " << myPQ.top() << std::endl;
myPQ.pop();
std::cout << "Top element: " << myPQ.top() << std::endl;
return 0;
}
```
在此示例中,我们首先创建了一个 `priority_queue` 对象 `myPQ`,其元素类型为 `int`。然后,我们使用 `push()` 方法向 `myPQ` 中添加三个整数 10、20 和 30。接下来,我们使用 `top()` 方法查找优先级最高的元素,即最大值,输出结果为 30。最后,我们使用 `pop()` 方法删除了最高优先级元素,即最大值,再次使用 `top()` 方法查找优先级最高的元素,输出结果为 20。
除此之外,`priority_queue` 还支持自定义比较函数,可以通过指定自定义比较函数来改变元素的排序方式。详情可参考 C++14 的 `priority_queue` 文档。
阅读全文