Я перегрузил оператор <
, как показано, но каждый раз, когда программа запускается, мои объекты классов сортируются, по-видимому, случайным образом.
class Node
{
int decimal_value
public:
Node(int decimal) : decimal_value(decimal)
{}
friend bool operator<(const Node& p1, const Node& p2);
};
bool operator<(const Node& p1, const Node& p2)
{
return p1.decimal_value < p2.decimal_value;
}
int main()
{
Node* n1= new Node(5);
Node* n2 = new Node(4);
priority_queue<Node*> my_q;
my_q.push(n1);
my_q.push(n2);
}
Возможно, это связано с использованием указателей на узлы, а неСами узлы? И если так, как я могу это исправить?