【发布时间】:2011-09-21 12:05:00
【问题描述】:
我正在尝试为我这样制作的课程创建一个优先级队列 -
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);可能会更简单,并减少您需要维护的公共接口。
标签: c++ operators operator-overloading priority-queue conditional-operator