使用自定义get属性增强动态属性

时间:2019-07-19 02:27:14

标签: c++ boost boost-graph

我试图将boost :: dynamic属性用于Graphviz输出的多个属性。

我熟悉自定义属性编写器(How to print a graph in graphviz with multiple properties displayed),但是我正在尝试对动态属性执行相同的操作。我们如何使用以下代码中的动态属性编写上述边缘属性编写器?我想在if和weight的值上写if else语句,如if(weight <5 && Capacity <5)然后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);

1 个答案:

答案 0 :(得分:1)

在此处查看一些选项:map set/get requests into C++ class/structure changes

您可以变换一个属性映射的结果,也可以完全使用功能属性映射。

转换值:

使用动态属性转换颜色属性的示例如下:Manually colouring of boost's graphs

功能图:

请注意,您也有make_constant_property_map(例如Boost Dynamic Properties with Custom get property