Boost将默认边缘权重设置为1

时间:2015-03-15 06:05:10

标签: c++ boost

我正在尝试使用Boost的图形算法(dijkstra,bfs等),我希望边缘权重默认为1,而不必在每次添加边缘时都设置它们。这可能吗?

1 个答案:

答案 0 :(得分:0)

使用static_property_map

的weigh_map
  

此属性映射包装某个特定对象的副本,并在输入密钥对象时返回该对象的副本。

template <typename KeyType, typename ValueType>
    static_property_map<KeyType, ValueType>
    make_static_property_map(const ValueType& value);

所以boost::make_static_property_map(1)足以用作重量 将参数映射到这些算法中的任何一种。

如果您需要默认值,并且可能的例外,请使用例如function_property_map进行评估。