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
以上这些,我都将在以后的学习中慢慢体会。
当然,在此之前,我已经基本熟悉了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
以上这些,我都将在以后的学习中慢慢体会。
相关文章推荐
- apue和unp的学习之旅00——开始吧
- 【Xilinx-Petalinux学习】-00-开始
- -00-开始【Xilinx-Petalinux学习】
- -00-开始【Xilinx-VDMA模块学习】
- 开始学习网络编程
- 大家好!我刚开始学习.net希望大家多指教!
- ASP.NET学习系列(六)开始控件之旅之Button及其Ajax扩展控件
- 从0开始学习 GitHub 系列之「向GitHub 提交代码」
- LINUX 网络编程---多路复用和信号驱动I/O(王德仙)2012-04-07 客户端和服务器端编写完成,明天开始学习poll 和epoll
- 开始C语言学习
- vc++学习开始时间
- 从哪里开始学习Windows 8?(zz)
- 菜鸟眼中的高手,高手眼中的菜鸟--对从开始学习软件开发到此时的感悟!!
- 开始学习php
- 开始学习cocoa!
- Spring in Action 学习笔记—第一章开始Spring之旅
- iOS狂暴之路(开始篇)---学习路线总结
- iOS狂暴之路(开始篇)---学习路线总结
- 学习SpringMVC——从HelloWorld开始
- 最近要开发一套GIS地图,现在开始学习