std::priority_queue是C++中用于实现最大堆或最小堆的容器适配器,默认为大根堆,通过指定std::greater可创建小根堆,支持自定义比较规则,常用于求前K大/小元素、任务调度等场景。

在C++中,std::priority_queue 是一个容器适配器,用于实现最大堆(默认)或最小堆。它位于 <queue> 头文件中,提供快速访问最大(或最小)元素的功能,常用于贪心算法、Dijkstra最短路径、合并K个有序链表等场景。
使用前需要引入头文件:
#include <queue>默认情况下,std::priority_queue 是一个大根堆,顶部元素是最大的。
std::priority_queue<int> pq;常用操作:
立即学习“C++免费学习笔记(深入)”;
示例代码:
#include <iostream>要使用最小堆,需指定第三个模板参数为 std::greater<T>,并带上两个额外的容器参数。
std::priority_queue<int, std::vector<int>, std::greater<int>> min_pq;说明:
示例:
std::priority_queue<int, std::vector<int>, std::greater<int>> min_pq;如果存储的是结构体或需要特殊排序规则,可以自定义比较方式。
例如,按学生的分数升序排列:
struct Student {这样就实现了以 score 为键的小根堆。
基本上就这些。掌握构造方式和比较器设置,就能灵活使用 std::priority_queue 了。
以上就是c++++怎么使用std::priority_queue_c++ std::priority_queue使用方法的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号