Я исследую использование библиотек графика повышения для применения их к различным сетевым проблемам, которые я имею в виду.
В примерах я смотрел на граничные значения графика ("веса"), всегда инициализируются как целые числа, такой как в них Форд Беллмана и алгоритмы Kruskal, например:
int weights[] = { 1, 1, 2, 7, 3, 1, 1, 1 };
Моя проблема состоит в том, если я пытаюсь изменить веса для удвоения, я получаю "кучу" предупреждающих сообщений о преобразованиях и т.д., которые до сих пор я не смог выяснить, как преодолеть.
Кто-либо видит путь вокруг этого?
Это вызвано несоответствием между массивом weights[]
и типом, используемым для весов ребер вашим boost-графом/алгоритмом.
В первом примере, например, вам также следует изменить
struct EdgeProperties {
int weight;
};
[...]
property_map<Graph, int EdgeProperties::*>::type
на
struct EdgeProperties {
double weight;
};
[...]
property_map<Graph, double EdgeProperties::*>::type
Во втором
typedef adjacency_list < vecS, vecS, undirectedS,
no_property, property < edge_weight_t, int > > Graph;
на
typedef adjacency_list < vecS, vecS, undirectedS,
no_property, property < edge_weight_t, double > > Graph;