使用自定义获取提升动态属性 属性
Boost Dynamic Properties with Custom get property
我正在尝试将 boost::dynamic 属性用于 Graphviz 输出的多个属性。
我熟悉自定义 属性 编写器 (How to print a graph in graphviz with multiple properties displayed),但我正尝试对动态属性做同样的事情。我们如何在下面的代码中使用动态属性来编写上面的 edge 属性 writer?我想写关于重量和容量值的 if else 语句,如 if(weight <5 && capacity <5) then color = red 等等。
boost::dynamic_properties dp/*(ignore_other_properties)*/;
dp.property("node_id", get(&vert::name, g));
dp.property("color", get(??,g));
write_graphviz_dp(std::cout, g, dp);
在此处查看一些选项:map set/get requests into C++ class/structure changes
您可以转换一张 属性 地图的结果,或者您可以一起使用功能性 属性 地图。
转换值:
此处是使用动态属性转换颜色 属性 的示例:
功能图:
- 我的偏好是使用成员函数并使用 transform_value_property_map 绑定它,如上所示,例如
- 但这里还有一个使用
function_property_map
的示例
请注意,您还有 make_constant_property_map
(例如 )
我正在尝试将 boost::dynamic 属性用于 Graphviz 输出的多个属性。
我熟悉自定义 属性 编写器 (How to print a graph in graphviz with multiple properties displayed),但我正尝试对动态属性做同样的事情。我们如何在下面的代码中使用动态属性来编写上面的 edge 属性 writer?我想写关于重量和容量值的 if else 语句,如 if(weight <5 && capacity <5) then color = red 等等。
boost::dynamic_properties dp/*(ignore_other_properties)*/;
dp.property("node_id", get(&vert::name, g));
dp.property("color", get(??,g));
write_graphviz_dp(std::cout, g, dp);
在此处查看一些选项:map set/get requests into C++ class/structure changes
您可以转换一张 属性 地图的结果,或者您可以一起使用功能性 属性 地图。
转换值:
此处是使用动态属性转换颜色 属性 的示例:
功能图:
- 我的偏好是使用成员函数并使用 transform_value_property_map 绑定它,如上所示,例如
- 但这里还有一个使用
function_property_map
的示例
请注意,您还有 make_constant_property_map
(例如