C++优先队列的函数
时间: 2023-11-05 14:17:40 浏览: 127
C++ 中的优先队列是通过 `std::priority_queue` 模板类来实现的,该类提供了一系列函数来操作优先队列。以下是一些常用的函数:
1. `push(const T& value)`:将元素 `value` 添加到优先队列中。
2. `emplace(Args&&... args)`:通过构造函数参数 `args` 在优先队列中构造一个元素。
3. `pop()`:移除优先队列中的顶部元素。
4. `top()`:返回优先队列中的顶部元素的引用。
5. `size()`:返回优先队列中元素的个数。
6. `empty()`:检查优先队列是否为空,如果为空返回 true,否则返回 false。
7. `swap(priority_queue& other)`:交换两个优先队列的内容。
需要注意的是,优先队列默认使用 `std::less` 作为比较函数,即元素按照默认的升序排列。如果需要自定义比较函数,可以在创建优先队列时传入自定义的比较函数对象作为参数。
例如,创建一个整型优先队列并添加元素的示例代码如下:
```cpp
#include <iostream>
#include <queue>
int main() {
std::priority_queue<int> pq;
pq.push(5);
pq.push(2);
pq.push(8);
while (!pq.empty()) {
std::cout << pq.top() << " ";
pq.pop();
}
return 0;
}
```
输出结果为:8 5 2,即优先队列中的元素按照降序排列。
阅读全文