Potrzebuję użyć biblioteki Boost, aby uzyskać najkrótszą ścieżkę z jednego punktu do drugiego. Przejrzałem przykładowy kod i przyzwoicie łatwo go śledzić. Jednak przykład pokazuje tylko, jak uzyskać ogólne odległości. Próbuję dowiedzieć się, jak iterować na poprzedniej mapie, aby faktycznie uzyskać najkrótszą ścieżkę i nie mogę tego rozgryźć. Czytałem te dwa pytania na temat:Zwiększenie dijkstra shortest_path - jak uzyskać najkrótszą ścieżkę, a nie tylko odległość?
Dijkstra Shortest Path with VertexList = ListS in boost graph
Boost:: Dijkstra Shortest Path, how to get vertice index from path iterator?
Ale w obu przykładach przedłożone, typedef IndexMap nie wydaje się do pracy z kompilatorem Visual Studio i, szczerze mówiąc , Zwiększenie typedefs jest dla mnie trochę dezorientujące i mam pewne problemy z ustaleniem tego wszystkiego. W oparciu o kod przykładowy Boost może ktoś mi powiedzieć, jak mogę po prostu uzyskać ścieżkę z niego? Byłbym bardzo wdzięczny.
http://www.boost.org/doc/libs/1_46_1/libs/graph/example/dijkstra-example.cpp
Uwaga - Myślę, że musisz dodać path.push_back (current); tuż przed tobą do ostatecznej ścieżki.push_back (start); - kiedy go użyłem, zapominał o węźle przed ostatnim. – Darkenor
@ Darkenor Przepraszam za to, uważam, że teraz działa poprawnie. –
Thx za przydatne informacje! Czy trudno byłoby zmodyfikować ten kod, aby wyświetlić również indywidualne odległości dla segmentów? – kfmfe04