优先队列是一种用堆实现的有序数据结构,在进行存储时默认顺序为大顶堆存储,由于其只能进或出的操作,因此将其称为队列的一种形式,而优先的意思就是进去后可以按优先级排序。
其结构定义
priority_queue<Type, Container, Functional>
Type为内部用来排序存储的数据类型,Container为初始元素的容器,Functional为比较数据类型。当存储的数据类型不为基本数据类型的时候,就需要指定上面3个参数,其中Functional为自己定义的类用来重构比较函数。
创建优先队列示意:
priority_queue<string> aa;
priority_queue<int> aa;
priority_queue<pari<int,int>,vector<pari<int,int>>,mycomparition> aa;