探索Boost库的冰山一角
1. 工作于图形
有些任务需要以图形方式表示数据。Boost.Graph是一个旨在提供一种灵活的方式来构造和在内存中表示图的库。它不仅支持图的构建,还包含了许多用于处理图的算法,如拓扑排序、广度优先搜索、深度优先搜索和Dijkstra最短路径算法。
如何操作…
在这个部分,我们将描述一种图的类型,创建这种类型的图,并添加一些顶点和边,最后搜索特定的顶点。以下是具体步骤:
-
描述图的类型:
```cpp
#include
#includetypedef std::string vertex_t;
typedef boost::adjacency_list<
boost::vecS,
boost::vecS,
boost::bidirectionalS,
vertex_t> graph_type;
``` -
构建图:
cpp graph_type graph;
-
添加顶点:
cpp auto v1 = boost::add_vertex("Vertex 1", graph); auto v2 = boost::add_vertex("Vertex 2", graph);
-
添加边:
cpp boost::add_edge(v1, v2, graph);
</