STL应用之大根堆小根堆

定义:

priority_queue xxx 大根堆

priority_queue, greater> xxxx 小根堆

 

访问最值使用 xxx.top()

堆自动把最值维护在堆最上层

 

删除最值使用 xxx.pop()

删除后自动维护出一个新堆

 

插入元素使用 xxx.push(xxxx)

插入到元素该在的位置上 并自动维护堆有序


#include
#include
#include
#include
#include
using namespace std;
 
priority_queue pq1; //默认最大堆 
priority_queue,greater > pq2; //最小堆 
/** addition 
equal_to       相等 
not_equal_to   不相等 
less           小于 
greater        大于 
less_equal     小于等于 
greater_equal 大于等 
这些在所有的排序算法中同样适用 
*/
int main()
{
    srand(time(NULL));
    for(int i=0;i<20;i++)
    {
      int r= rand()%10000;
      pq1.push(r);
      pq2.push(r);
    }
    
    for(int i=0;i<20;i++)
    {
         cout<


你可能感兴趣的:(NOIP)