У меня есть следующий код, чтобы понять создание экземпляра объекта очереди с приоритетом.
#include <queue>
#include <functional>
int main(int argc, char *argv[])
{
std::priority_queue<int, std::vector<int>, std::greater<>> int_min_heap;
return 0;
}
Третий параметр шаблона priority_queue — функция сравнения. Как видно, я использовал 'std::greater'.
Это успешно компилируется, хотя я ожидал, что компиляция не удастся, поскольку я не указал параметр для std::greater, т.е. правильный способ (как мне кажется) создания экземпляра шаблона
std::priority_queue<int, std::vector<int>, std::greater<int>> int_min_heap;
Я мог бы найти любое определение std::greater без входного параметра.
Может ли кто-нибудь указать, что мне не хватает в понимании?