我有以下 python 代码: import heapq heapq.heappush(openList, currentSearchNode) #NOTE List of nodes that have been checked closedList = [] while openList: #NOTE Pop the lowest fscore (to-go + been from or gScore + hScore) and set it as current currentSearchNode = heapq.heappop(openList)...我需要将其转换为 C++14,我尝试了以下方法:#include <functional>#include <queue>priority_queue <Node, vector<Node>, greater<Node>> min_heap;vector<Node> openList, closeList;Node currentNode = Node(start, euclidean(start, end), 0);min_heap.emplace(openList, currentNode);while (!openList.empty()) { currentNode = min_heap.pop(openList);...}Visual Studio 中唯一以红色弹出的问题是这一行,currentNode = min_heap.pop(openList);正如您所看到的,它表示弹出的参数太多。如何以正确的方式做到这一点?
1 回答
呼啦一阵风
TA贡献1802条经验 获得超6个赞
像下面这样怎么样?
while (!min_heap.empty()) {
currentNode = min_heap.top(); // sets the top small (since std::greater used)element to currentNode;
/* do something with currentNode */
min_heap.pop(); // pops the element from container
}
添加回答
举报
0/150
提交
取消