У меня много проблем с тем, чтобы моя очередь приоритетов распознавала, по какому параметру она должна сортироваться. Я перегрузил оператор меньше чем в своем пользовательском классе, но, похоже, он его не использует. Вот соответствующий код:
Узел.h
class Node
{
public:
Node(...);
~Node();
bool operator<(Node &aNode);
...
}
узел.cpp
#include "Node.h"
bool Node::operator<(Node &aNode)
{
return (this->getTotalCost() < aNode.getTotalCost());
}
getTotalCost() возвращает целое число
main.cpp
priority_queue<Node*, vector<Node*>,less<vector<Node*>::value_type> > nodesToCheck;
Что я упускаю и/или делаю неправильно?