图的抽象的数学性质和它们被用来解决具体问题之间的主要联系就是被附加在图的顶点和边上属性,比如距离、容量、权重、颜色等。因为有不同的数据结构,所以有许多方法用来将各种属性添加到图中,但是作用在图上的算法不需要去关心这些具体的细节。定义在章节Property Map Concepts中的“属性映射”接口为访问图中的属性提供了一个泛型(通用?)方法。这里讲的是在BGL算法中用来访问各种属性的接口。
Property Map Interface
属性映射接口指明了,每个属性都要用单独的属性映射对象来访问。在下面的例子中,我们将展示函数 relax() 的一个实现,这个函数被用在 Dijkstra 最短路径算法中。在这个函数中,我们需要访问一条边的权重属性和一个顶点的距离属性。我们把 relax() 写成一个模板函数,这样它就可以用在许多不同的场景中。这个函数的实参数,weight 和 distance 是属性对象。一般来说,BGL算法会给一个函数所需要的每个属性传递一个属性映射对象。
未完...
时间: 2024-10-18 21:05:37