我正在尝试制作一个优先队列,这个队列是由我创建的一个类组成的,示例如下 -
然而,每当我尝试编译时,就会收到错误消息,指出未重载<操作符 -
我这里缺少什么?非常感谢您的帮助。
std::priority_queue<Position> nodes;
我在Position类中重载了<运算符,代码如下 -
bool Position::operator<(Position& right) {
return (fvalue < right.getFValue());
}
然而,每当我尝试编译时,就会收到错误消息,指出未重载<操作符 -
error: no match for ‘operator<’ in ‘__x < __y’
position.h:30: note: candidates are: bool Position::operator<(Position&)
我这里缺少什么?非常感谢您的帮助。
return (fvalue < right.fvalue);
可能会更简单,并减少您需要维护的公共接口。 - Martin York