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表示