A* パスファインディング アルゴリズムの 1 つのステップでは、現在対話しているノードの開いているノードのリストを検索し、そのノードがまだ存在しない場合はリストに追加するか、存在する場合はその値と親を更新する必要があります。ただし、ノードの現在のバージョンよりも重みが高くなります。
これらの動作は、STL の priority_queue 構造体ではサポートされていません。そのステップをどのように実装すればよいですか?
この質問は多くのビューを獲得しているため、更新:
std::priority_queue はこれに適しているように見えるかもしれませんが、そうではありません。
A* を自分で実装することは非常に自信を高めますが、それを実行した後は、boost によって提供されるものを使用するように切り替えるようにしてください。この質問をしたとき、私はそれをインストールすることに神経質になりましたが、インストールは非常に簡単で、複雑なことはありません。また、boost が提供する便利な機能は A* だけではありません。(特に、文字列処理機能を使用しない場合は、独自のコピーを作成することになります。個人的な経験から話します...)