Necesito usar la biblioteca de Boost para obtener la ruta más corta de un punto a otro. Revisé el código de ejemplo y es decentemente fácil de seguir. Sin embargo, el ejemplo solo muestra cómo obtener las distancias generales. Estoy tratando de averiguar cómo iterar sobre el mapa predecesor para realmente obtener la ruta más corta y no puedo entenderlo. He leído estas dos preguntas sobre el tema:Boost dijkstra shortest_path: ¿cómo se puede obtener el camino más corto y no solo la distancia?
Dijkstra Shortest Path with VertexList = ListS in boost graph
Boost:: Dijkstra Shortest Path, how to get vertice index from path iterator?
Sin embargo, en los dos ejemplos proporcionados, no parece el typedef IndexMap para trabajar con el compilador de Visual Studio y, francamente , Los typedefs de Boost son un poco confusos para mí y estoy teniendo algunos problemas para descifrar todo esto. Basado en el código de ejemplo de Boost aquí, ¿alguien podría decirme cómo puedo obtener el camino de salida? Le estaría muy agradecido.
http://www.boost.org/doc/libs/1_46_1/libs/graph/example/dijkstra-example.cpp
Nota: creo que debe agregar path.push_back (actual); justo antes de llegar al path.push_back final (inicio); - cuando lo usé, seguía olvidando el nodo antes del último. – Darkenor
@Darkenor Perdón por eso, creo que ahora funciona correctamente. –
¡Gracias por el fragmento útil! ¿Sería difícil modificar este código para mostrar las distancias individuales para los segmentos también? – kfmfe04