используя boost::graph со связанными свойствами. Я хочу иметь возможность выполнять поиск, используя множество различных возможных схем взвешивания ребер. Я хотел бы не создавать дополнительный класс для связанных свойств, если это возможно, и передавать разные карты весов в зависимости от типа поиска без создания нового графика или изменения всех существующих свойств в графике.
Могу ли я вручную создать карту свойств для edge_weight_t? Вот что у меня есть:
typedef boost::property_map<SSPSGraph_t, boost::edge_weight_t>::type WeightMap;
typedef boost::property<boost::edge_weight_t, float> DistanceProperty;
И я хотел бы просто быть в состоянии сделать
WeightMap distances;
edge_descriptor_t e = some_edge_or_another;
float d=some_derived_distance_value;
И присвойте расстоянию [e] соответствующие значения:
distances[e]= ?
Или мне просто нужно разбить и создать новую структуру для объединенных свойств — чего я пытался избежать — и создать из этого карту весов? Новое в boost::graph; не предполагая, что я не делаю здесь что-то совершенно глупое.