Boost :: Graph :: dijkstra_shortest_paths Получить информацию о краях пути, выбранного на графике с параллельными краямиC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Boost :: Graph :: dijkstra_shortest_paths Получить информацию о краях пути, выбранного на графике с параллельными краями

Сообщение Anonymous »

Ранее Boost :: Edge (v, U, Graph) был достаточен без параллельных ребра, но теперь он, кажется, только возвращает первое преимущество, встречающееся между двумя вершинами (всегда возвращает первый из ввода параллельных краев на график). boost :: adjectency_list ):

Код: Выделить всё

for (auto v : boost::make_iterator_range(vertices(fg)))
{
// Extract a shortest path
typedef std::vector PathType;
PathType path;
vertex_t vv = v;
for(vertex_t u = predecessors[vv];
u != vv; // Keep tracking the path until we get to the source
vv = u, u = predecessors[vv]
) // Set the current vertex to the current predecessor,     and the predecessor to one level up
{
// this is the problem. Need to pull the correct edge out of the graph using predecessor map
std::pair edgePair = boost::edge(u, vv, fg);
edge_t edge = edgePair.first;
path.push_back( edge );
}
Моя цель - получить std :: vector объект ребра, пройденных dijkstra_shortest_paths . Предшественники - это вывод карты предшественников из алгоритма.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... ected-in-g
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»