我想要一个Waypoint*对象的向量,这些对象被排序,以便具有最低距离的航点位于队列的顶部.
这是我的比较课:
class WaypointCompare {
public:
bool operator()(Waypoint* left, Waypoint* right) const {
return left->getDistance() < right->getDistance();
}
};
Run Code Online (Sandbox Code Playgroud)
这是我如何初始化队列:
std::priority_queue<Waypoint*, std::vector<Waypoint*>, WaypointCompare> queue;
Run Code Online (Sandbox Code Playgroud)
每当我更新航点的距离时,我的队列似乎都没有正确重新排序.与此示例一样,距离值最小的Waypoint对象不应该位于队列的后(顶部)(索引10)吗?这是一个队列调试的图像,我已经注意到我认为是错误的:

我认为这可能与我对pq的不稳定理解有关,或者我正在初始化到HUGE_VAL的所有距离.