을 정렬되지 않습니다 :C++, 우선 순위 큐는 항목 내가 우선 순위 큐에 문제가
std::priority_queue <NodePrio, std::vector<NodePrio>, sortNodesByPrio> PQ;
곳
struct NodePrio
{
Node *node;
double priority;
NodePrio() : node(NULL), priority(0) {}
NodePrio(Node *node_, double priority_) : node(node_), priority(priority_) {}
};
및
class sortNodesByPrio
{
public:
bool operator() (const NodePrio &n1, const NodePrio &n2) const;
}
bool sortNodesByPrio::operator() (const NodePrio &n1, const NodePrio &n2) const
{
return n1.priority < n2.priority;
}
반복적으로 새로운 요소를 누른 후를
PQ.push(NodePrio(node, distance));
그들이 (우는 소리 참조)으로 정렬되지 않습니다 어떤 시점에서 617,451,515,... 난
Step1:
push (node, 55.33);
PQ:
[0] 55.33
Step2:
push (node, 105.91);
PQ:
[0] 105.91
[1] 55.33
Step 3:
push (node, 45.18);
PQ:
[0] 105.91
[1] 55.33
[2] 45.18
Step 4:
push (node, 70.44);
PQ:
[0] 105.91
[1] 70.44
[2] 45.18
[3] 55.33 //Bad sort
"그들은 분류되지 않았습니까?" 입력하는 샘플 데이터와 우선 순위 큐에서 모든 데이터를 팝했을 때의 결과를 게시 할 수 있습니까? –
입력의 한 두 가지 예를 들어 줄 수 있습니까? 그리고 결과로 나오는 큐의 내용은 무엇입니까? 또한, 지금까지 디버깅 방법으로 무엇을 시도 했습니까? – suszterpatt