Я пытаюсь объявить a priority_queue of nodes
, использование bool Compare(Node a, Node b)
как функция компаратора (который является вне класса узла).
То, что я в настоящее время имею:
priority_queue<Node, vector<Node>, Compare> openSet;
По некоторым причинам я добираюсь Error: "Compare" is not a type name
Изменение объявления к priority_queue <Node, vector<Node>, bool Compare>
дает мне Error: expected a '>'
Я также попробовал:
priority_queue<Node, vector<Node>, Compare()> openSet;
priority_queue<Node, vector<Node>, bool Compare()> openSet;
priority_queue<Node, vector<Node>, Compare<Node, Node>> openSet;
Как я должен правильно объявить мой priority_queue
?
Можно также использовать функцию лямбды.
auto Compare = [](Node &a, Node &b) { //compare };
std::priority_queue<Node, std::vector<Node>, decltype(Compare)> openset(Compare);