struct Tower{
    Tower(int h, int p){
        height = h;
        pos = p;
    }
    bool operator < (Tower &t) {
        if (height < t.height) {
            return true;
        }
        else {
            return false;
        }
    }
    int height;
    int pos;
};

struct cmp_less{
    bool operator() (Tower & t1, Tower &t2){
        if (t1.height < t2.height) {
            return true;
        }
        else {
            return false;
        }
    }
};
struct cmp_greater{
    bool operator() (Tower & t1, Tower &t2){
        if (t1.height > t2.height) {
            return true;
        }
        else {
            return false;
        }
    }
};

priority_queue<Tower, vector<Tower>, cmp_greater>  min_heap(tower.begin(), tower.begin() + n / 2) ;//最小堆
    priority_queue<Tower, vector<Tower>, cmp_less>  max_heap(tower.begin() + n / 2, tower.end() );    //最大堆

 

相关文章:

  • 2021-10-11
  • 2022-02-10
  • 2021-12-26
  • 2021-09-02
  • 2021-11-16
  • 2022-12-23
猜你喜欢
  • 2021-07-31
  • 2021-12-25
  • 2021-09-30
  • 2022-12-23
  • 2022-12-23
  • 2022-02-21
  • 2022-01-12
相关资源
相似解决方案