C++ STL容器——priority_queue的详解
在C++ STL中,priority_queue是一个非常常用的容器,它可以用来实现堆结构,实现优先队列等等。顾名思义,priority_queue就是维护了一个有着“优先级”的队列,它的操作和普通的队列类似,但是在插入和删除元素时会根据某些规则自动进行排序,从而保证了队列里面的元素始终按照一定优先级顺序排列。
使用priority_queue前需要包含头文件,定义方式如下:
#include <queue>
std::priority_queue<int> pq;
上面的代码定义了一个空的 priority_queue,其中是类型参数,表示这个队列中只能存储int类型的数据。这里我们介绍两种定义元素类型的方法:
std::priority_queue<int> pq; // 定义一个整型的优先队列
std::priority_queue<int, std::vector<int>, std::greater<int>> pq; // 定义一个逆序的整型优先队列
第一种定义方式是默认的,会自动根据元素类型的大小关系(默认是按照大于的方式)来进行排序。而第二种方式则需要显式地指定排序规则,这里的std::greater表示从小到大排序。如果要从大到小排序,则可以使用std::less。
下面是一些常用操作:
- push():插入元素
pq.push(7);
本文详细介绍了C++ STL中的priority_queue容器,它用于实现堆结构和优先队列。通过包含头文件并定义元素类型,如int,可以创建priority_queue。默认按大于关系排序,但可自定义排序规则。常用操作包括push、pop、top和size。虽然无法访问中间元素,但其强大的排序和自动调整功能使其成为实现复杂数据结构和算法的利器。
订阅专栏 解锁全文
1268

被折叠的 条评论
为什么被折叠?



