我对C++模板有点生疏,同时我正在使用boost图形库(这是一个致命的结合)。我搜索了网络但找不到如何将自定义图形结构与BGL(boost图形库)相匹配以便使用boost的图形遍历算法的直接指导。是否有熟悉该库的人可以帮助我?
编辑:所以,我一直遇到的主要问题是在哪里找到源代码来完全满足将任意图形映射到BGL图形需求。我对模板非常陌生,所以很难阅读BGL的规范/示例。也许我应该寻找有关模板的通用来源?
我对C++模板有点生疏,同时我正在使用boost图形库(这是一个致命的结合)。我搜索了网络但找不到如何将自定义图形结构与BGL(boost图形库)相匹配以便使用boost的图形遍历算法的直接指导。是否有熟悉该库的人可以帮助我?
编辑:所以,我一直遇到的主要问题是在哪里找到源代码来完全满足将任意图形映射到BGL图形需求。我对模板非常陌生,所以很难阅读BGL的规范/示例。也许我应该寻找有关模板的通用来源?
据我理解,这种方法是为了针对您的图形类型专门化boost::graph_traits
结构。这会为BGL配置各种重要属性,使其了解有关您的图形的信息。然后,您需要针对您的图形的专门化graph_traits
类型来专门化全局模板函数,以实现任何适用于您特定类型图形的boost图形接口。
在BGL文档中有一个例子:
http://www.boost.org/doc/libs/1_43_0/libs/graph/doc/leda_conversion.html
这里有几个不同接口的链接,它们指示了如果您想支持该接口,则需要专门化哪些全局模板函数以适应您的图表。完整的接口列表在这里:
http://www.boost.org/doc/libs/1_43_0/libs/graph/doc/graph_concepts.html