跳到正文
信奥逐课

第 129 课

priority_queue

🔵 基础 约 7 分钟

一句话理解

priority_queue 是堆,默认最大的在 top。

为什么要学

每次取最值、Huffman、Dijkstra 都会用。

讲解

pq.push(x); pq.top(); pq.pop(); 默认大根堆。小根堆:priority_queue<int, vector, greater>。

不能直接改堆里某个值,通常是塞一个新的进去,旧的懒惰删除。

例子

priority_queue<int> pq;
pq.push(3);
pq.push(9);
pq.push(5);
cout << pq.top();

输出:

9

默认最大元在堆顶。

常见错误

练习 做完再看下一课

默认 priority_queue 的 top 是最小值。

在线练习 C++ 在浏览器里编译,代码不会上传

Ctrl / ⌘ + Enter 运行 · Tab 缩进

输出
 

进度保存在本机浏览器里。

左右方向键也可翻课