Компаратор для min-heap в C ++

Я пытаюсь сделать мин-кучу1 изlongв C ++ с использованием STLmake_heapи т. д., но мой компаратор неКажется, сравнивать правильно. Вот мой текущий компаратор:

struct greater1{
    bool operator()(const long& a,const long& b) const{
        return a>b;
    }
};

Тем не менее, когда я делаюstd::pop_heap(humble.begin(),humble.end(),g); гдеg является примеромgreater1 а такжеhumble это куча, которая делает[9,15,15,25] когдаsort_heap называется, я получаю15 совал.

Мой компаратор правильный? что может быть не так?

РЕДАКТИРОВАТЬ:

Я понял, что я запускаю sort_heap без компаратора, тогда как при запуске этого компаратора я получаю[15,15,9,25] отsort_heap, Теперь я думаю, что мой компаратор определенно не работает, но не знаю почему.

STL делает max-heap по умолчанию, поэтому мне нужен компаратор.

Ответы на вопрос(3)

Ваш ответ на вопрос