提升将默认边权重设置为 1

Boost set default edge weight to one

本文关键字:设置 权重 默认      更新时间:2023-10-16

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

使用 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进行评估。