温馨提示×

C++的priority_queue怎么使用

小亿
85
2023-07-07 10:52:57
栏目: 编程语言

priority_queue 是C++标准库中的一个容器适配器,它提供了一个优先级队列的实现。下面是使用 priority_queue 的一些基本步骤:

  1. 包含头文件:#include <queue>

  2. 定义优先级队列:std::priority_queue

std::priority_queue<int> pq; // 创建一个默认的优先级队列,默认是大顶堆
  1. 插入元素:使用 push() 函数将元素插入到优先级队列中。
pq.push(5); // 将元素5插入到优先级队列中
pq.push(2); // 将元素2插入到优先级队列中
pq.push(8); // 将元素8插入到优先级队列中
  1. 访问队列顶部元素:使用 top() 函数可以获取队列中的最高优先级元素。
int topElement = pq.top(); // 获取队列中的最高优先级元素
  1. 删除队列顶部元素:使用 pop() 函数可以删除队列中的最高优先级元素。
pq.pop(); // 删除队列中的最高优先级元素
  1. 判断队列是否为空:使用 empty() 函数可以判断队列是否为空。
bool isEmpty = pq.empty(); // 判断队列是否为空

需要注意的是,priority_queue 默认是一个大顶堆,即优先级高的元素会被放在队列的前面。如果想要使用小顶堆,则可以通过传递一个比较函数来实现:

std::priority_queue<int, std::vector<int>, std::greater<int>> pq; // 创建一个小顶堆

上述代码中,std::greater<int> 是一个比较函数对象,用于比较两个元素的大小。

0