我有以下 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
提交
取消