提升图。继承的等效技术

时间:2015-02-28 17:38:59

标签: c++ boost graph

我对Boost Graphs很新,也许我的问题有一个解决方案。

我有一个在图形上执行某些计算的函数。它期望具有特定属性的图形,例如,它期望所有边都有一个数字权重值,所有顶点都有一个数字字段(让我们称之为颜色,在调用我的函数之前,它会预设为一些有意义的值)。

想象一下,我有一组不同的图形类型,它们都在链接上具有数字权重属性,并且它们的所有顶点都具有数字颜色,但是它们还具有顶点和边缘的其他属性。 我的问题是如何在所有这些图表类型中使用我的函数?

  1. 当然对我来说它似乎是一个继承,如果boost图表是类,那么我的函数可以在基类上运行,我可以将指针传递给子类等。
  2. 最初我一直在尝试声明我的函数以接受模板图形参数,但很快我意识到它不起作用(或者我无法弄清楚如何正确地完成它)。
  3. 谢谢!

1 个答案:

答案 0 :(得分:1)

等同于继承的"技术"被称为"多态性"和BGL偏好"静态多态性" (选项2!)。

这是通用库的按需付费方法。

可以调整任何类型(层次结构)以便与BGL的静态多态性一起使用,但是:

还使用属性贴图将属性(权重,颜色)链接到顶点/边缘。