我想爲我的尋路使用地圖,但不幸的是我不太熟悉它們。我做的是在這條線出現以下錯誤的假設在我Pathfinding.h
:std::map<PathNode*, bool> mOpenMap;
錯誤C2664使用地圖
"Error 1 error C2664: 'std::pair<const _Kty,_Ty>::pair(const std::pair<const _Kty,_Ty> &)' : cannot convert argument 1 from 'PathNode *' to 'const std::pair<const _Kty,_Ty> &' c:\program files (x86)\microsoft visual studio 12.0\vc\include\xmemory0 600 1 Pac3D"
我想這是可行的,因爲我已經看到了類似的方式使用它人,但無論是我做錯了什麼或者不應該這樣工作,我在考慮後者。
有沒有人有任何關於如何解決這個問題的指針?我會很樂意應要求發佈更多的代碼。
編輯:我用mOpenMap.emplace(start, true);
把我的第一個節點內,從那裏出來它通常是currentNode,無一不是PathNode*
我猜你正在使用'mOpenMap.insert(新PathNode);'或類似的東西? – 2014-09-21 14:59:21
我使用'mOpenMap.emplace(start,true);'在我對地圖 – 2014-09-21 15:10:27
執行任何操作之前,currentNode是'PathNode *'類型的,對吧? – 2014-09-21 15:10:54