Хорошо, основная причина в том, что очередь с приоритетами - это структура, в которой вставленные элементы возвращаются в порядке некоторой функции порядка. Вам нужен порядок, и очевидный способ справиться с ним - перегрузить оператор <. Вы можете иметь функцию по имени, но способность сказать, что <code>if( a < b), возможно, более читабельна, чем if(isLessThan(a,b))
или что-то в этом роде.
Вы не перегружаете operator>
, потому что это не нужно; единственная операция, которая вам нужна в очереди с приоритетами - меньше чем. Это не значит, что вы не могли иметь его, но, поскольку у вас есть ==
, вы можете реализовать его тривиально - или просто обратить вспять операнды.