Настройка минимальной кучи путем сравнения - PullRequest
0 голосов
/ 10 января 2020

Вот мой код, и вместо того, чтобы писать return меньше, чем b, я на самом деле получаю числа, напечатанные в порядке максимальной кучи. Если я пишу return a>b, я печатаю числа в порядке минимальной кучи. Почему это происходит здесь, что прямо противоположно тому, что я испытал ранее.

Может ли кто-нибудь объяснить рабочий феномен?

#include<bits/stdc++.h>
using namespace std;
struct comp
{
    bool operator()(const int &a,const int &b)
    {
    return a< b;
    }                              
};
int main()
{
    int i,j,k,l,n,m;
    priority_queue<int,vector<int>, comp> pq;
    for(i=1;i<10;i++)
    {
     pq.push(i);
    }
    while(!pq.empty())
    {
    cout<<pq.top()<<" ";
    pq.pop();
    }
    return 0;
}
...