您的位置:首页 > 其它

BGL学习00---开始

2008-04-20 08:19 246 查看
这篇blog是我学习boost之BGL的开始。BGL是Boost Graph Library的缩写,是基于boost的一个强大的图论函数库。其采用了C++泛型编程(Generic Programming)的思想,因而有强大的通用性、扩展性和高效率。从今天开始我将系统地学习这个库,基本想法是逐个学习其自带的所有例子。通常,这 些例子位于目录$BOOST/libs/graph/example之下。

当然,在此之前,我已经基本熟悉了boost的使用。我的使用环境是:

操作系统:Cygwin/Windows XP

GCC版本:3.4.4

Boost版本:1.34.1

同时,我会使用Graphviz来可视化这些图。

一、帮助文档
-------------------------------------------
首先,我熟悉了BGL的online帮助文档。这些文档实际上就是书《The Boost Graph Library》的内容,而boost之BGL库也自带这些文档,在目录$BOOST/libs/graph/doc/之下。要了解BGL,以下几个章节相当重要:

6. A Quick Tour of the Boost Graph Library.

8.1 Property Maps

8.2 The adjacency_list class

11. The Boost Graph Interface




以上图片则显示了BGL的STL的对比。在帮助文档的章节1. Introduction to the BGL有对STL和BGL泛型编程特征的比较。STL作为泛型编程的3个方式:

Algorithm/Data-Structure Interoperability

Extension through Function Objects/Functor

Element Type Parameterization

正好在BGL中也有对应:

Algorithm/Data-Structure Interoperability

Extension through Visitors

Vertex and Edge Property Multi-Parameterization

而在章节20. Traits classes则是BGL中,就图论的应用,所定义的特别类型,也是上图中Property Accessor所指的内容:

graph_traits

adjacency_list_traits

property_map

以上这些,我都将在以后的学习中慢慢体会。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: