priority_queue list
时间: 2023-08-08 07:11:01 浏览: 59
在C++中,我们可以使用标准库中的priority_queue来实现优先级队列。priority_queue是一个基于堆的数据结构,元素按照一定的优先级进行排序。下面是一个使用priority_queue实现的简单示例:
```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();
// 输出剩余元素
std::cout << "Remaining elements: ";
while (!pq.empty()) {
std::cout << pq.top() << " ";
pq.pop();
}
std::cout << std::endl;
return 0;
}
```
在上面的示例中,我们创建了一个存储整数的priority_queue。通过调用`push()`方法,我们可以将元素添加到队列中。使用`top()`方法可以访问当前优先级最高的元素,而`pop()`方法则可以移除当前优先级最高的元素。通过循环遍历直到队列为空,我们可以输出剩余的元素。
请注意,priority_queue默认按照元素的值从大到小进行排序。如果需要按照自定义的比较函数进行排序,可以通过提供自定义比较函数作为priority_queue的第二个模板参数来实现。