Próbuję zadeklarować priority_queue of nodes
, używając bool Compare(Node a, Node b)
jako funkcji komparatora (która znajduje się poza klasą węzła).zadeklarowanie parametru priority_queue w języku C++ przy użyciu niestandardowego komparatora
Co Mam aktualnie jest:
priority_queue<Node, vector<Node>, Compare> openSet;
Z jakiegoś powodu jestem coraz Error: "Compare" is not a type name
Zmiana deklaracji priority_queue <Node, vector<Node>, bool Compare>
daje mi Error: expected a '>'
Ja również wypróbowano:
priority_queue<Node, vector<Node>, Compare()> openSet;
priority_queue<Node, vector<Node>, bool Compare()> openSet;
priority_queue<Node, vector<Node>, Compare<Node, Node>> openSet;
Jak powinienem poprawnie zadeklarować mój priority_queue
?
Idealne, właśnie to, czego szukałem. Nigdy nie myślałem, że zrobię oddzielną klasę. Czy pierwszy przykład można uznać za lepszy styl? –
@StevenMorad, wolę używać klasy z przeciążonym 'operator()', to wygląda na prostsze. – soon
@soon Dlaczego przeciążamy operatora()? Czy jest to związane z wewnętrznym wdrażaniem mechanizmów priority_queues? Przeciążanie> lub
Piyush