优先队列
C++中的优先队列只考虑优先级最高的元素。队列遵循 FIFO 策略,优先队列根据优先级弹出元素,即优先级最高的元素先弹出。
它在某些方面与普通队列相似,但在以下方面有所不同:
- 在优先级队列中,队列中的每个元素都与某个优先级相关联,但队列数据结构中不存在优先级。
- 优先级队列中优先级最高的元素将首先被删除,而队列遵循先进先出(FIFO, first - in - first - out)策略意味着先插入的元素将首先被删除。
- 如果存在多个具有相同优先级的元素,则将考虑队列中元素的顺序。
方法 | 描述 |
---|---|
push() | 插入元素,保证优先级不变 |
pop() | 移除优先级最高的元素 |
top() | 返回顶部元素 |
size() | 返回队列大小 |
empty() | 检查是否为空 |
优先队列 示例代码
cpp
#include<bits/stdc++.h>
using namespace std;
int main()
{
priority_queue<int> p;
p.push(10);
p.push(30);
p.push(20);
while(!p.empty())
{
cout << p.top() << std::endl;
p.pop();
}
}