У меня есть проект с большим графом, заполненным, как это:Wrap моего собственный графика с бустом :: графиком и вычислите dijkstra_shortest_paths
struct EdgeItem{
int mPid1;
int mPid2;
double weight;
};
struct StationItem{
int mPid;
QString mName;
};
QMap<int, StationItem> StationsMap;
QList<EdgeItem> mEdgesList;
QVector<EdgeItem*> GetEdgesByPid(int Pid);
// and some other service methods
станции карты проиндексирована Pid. Границы графа как MapLayerEdgeItem имеют вес. Не важно не копировать данные графа и использовать существующие структуры. Мне нужно запустить и рассчитать dijkstra_shortest_paths на нем. Пожалуйста, предложите, с чего мне нужно начать.
См. [Документы] (http://www.boost.org/doc/libs/1_57_0/libs/graph/doc/dijkstra_shortest_paths.html) и [пример] (http://www.boost.org/ doc/libs/1_57_0/libs/graph/example/dijkstra-example.cpp) – pbible
«Когда вы спрашиваете программиста Nix для туалетной бумаги, он дает вам топор и показывает ближайший лес». Примеры, предоставляемые с помощью графа boost docs, известны как довольно простые и не включают в себя все ситуации. Вы связали образец, используя простые массивы. Мне нужно использовать QMap и QList без копирования данных в другой формат. Спасибо. –
Вы спросили, пожалуйста, подскажите, что мне нужно для начала. Я думаю, что документы и примеры - отличное место. Если вы хотите использовать встроенные алгоритмы, вам нужно использовать интерфейс ускоренного графа. Дейкстра не так сложно реализовать. если бы я был вами, я бы бросил свой собственный. В противном случае вам нужно адаптировать свои структуры к интерфейсу. – pbible