Мне интересно, почему для создания кучи min с помощью priority_queue
следует использовать std::greater
?
std::priority_queue<T, std::vector<T>, std::greater<T> > min_heap;
Для меня, поскольку наименьшее значение всегда находится в верхней части кучи, используемый класс должен быть std::less
Update:
С другой стороны, поскольку поведение по умолчанию priority_queue
(max heap) заключается в том, чтобы удерживать наибольшее значение вверху, мне кажется, что std::greater
следует использовать для создания максимальной кучи, а не для создания минимальной кучи