В функции C++ Sort третий необязательный параметр — это компаратор, используемый для сортировки объектов. Если мы передадим в качестве компаратора less, мы получим объекты в возрастающем порядке. (если компаратор оценивается как истинный, позиции не будут изменены, иначе элементы будут заменены местами!) Правильно ли я понимаю?
Таким же образом, если мы передаем компаратор less в очередь с приоритетом, мы должны получить минимальную кучу (если в качестве базовой структуры данных выбрана векторная, объекты сортируются в порядке возрастания. Если мы вызываем top(), то будет возвращен первый элемент вектора, который является наименьшим числом.Поэтому я думаю, что это минимальная куча) почему мы получаем максимальную кучу?
std::greater
, иначе по умолчаниюstd::less
создает поведение максимальной кучи. Это указано в документации. - person Cory Kramer   schedule 04.07.2018std::priority_queue
по умолчанию просто максимальная куча. На самом деле больше нечего объяснять. - person BessieTheCookie   schedule 05.07.2018