Существует по крайней мере одна проблема, которую я вижу, это недопустимое определение свойства ребра. Для определения свойств графа следует использовать тип property<>
. Существует несколько предопределенных типов свойств, таких как индекс, вес, цвет и т. Д. Для определения стоимости ребра используется тип свойства edge_weight_t
. Следовательно, определение типа графа должно быть следующим:
typedef adjacency_list<
setS, // disallow parallel edge
vecS,
undirectedS,
no_property,
property<edge_weight_t, int>
> Graph;
Для доступа к типу свойства используется property_map<>
: property_map<Graph, edge_weight_t>::type
.
Редактировать Моя ошибка, связанная со связанными свойствами, все еще трудно предоставить правильный тип для параметра шаблона randomize_property<Property>
, которым должно быть свойство kind . Если вы определите график, как в моем примере, использование будет randomize_property<edge_weight_t>(g, gen);