优先队列使用自定义比较

备忘

#include<iostream>
#include<stdlib.h>
#include<queue>
#include<vector>
#include<utility>
using namespace std;

struct cmp1{
  bool operator()(const pair<int,int>& a, const pair<int,int>& b){
    return a.first < b.first;
  }
  // 遵循一个规则:当a与b比较,比较函数return true的话,元素a往前走;否则b往前走
};

int main(void){
  pair<int,int> data(1,2);
  priority_queue<pair<int,int>, vector<pair<int,int>>, cmp1> test;
  int count = 10;
  while(count--){
    test.push(data);
    data.first++;
  }
  while(!test.empty()){
    cout<<test.top().first<<" "<<test.top().second<<endl;
    test.pop();
  }
  system("pause");
}