邻接迭代器适配器将出边迭代器 (out_edge_iterator)转换为邻接迭代器。也就是说,它接受一个遍历边的迭代器,并创建一个遍历这些边**_目标_**顶点的迭代器。使用此适配器,可以轻松地将建模为关联图的图类型添加邻接图所需的功能。
namespace boost { template <class Graph, class VertexDescriptor, class OutEdgeIter> class adjacency_iterator_generator { public: typedef iterator_adaptor<...> type; }; }
以下是使用adjacency_iterator_generator类的示例。
#include <boost/graph/adjacency_iterator.hpp> class my_graph { // ... typedef ... out_edge_iterator; typedef ... vertex_descriptor; typedef boost::adjacency_iterator_generator<my_graph, vertex_descriptor, out_edge_iterator>::type adjacency_iterator; // ... };
参数 | 描述 |
---|---|
Graph (图) | 图类型,必须建模为关联图。 |
VertexDescriptor (顶点描述符) | 这必须与graph_traits<Graph>::vertex_descriptor类型相同。之所以将其作为模板参数,是因为adjacency_iterator_generatoradjacency_iterator_generator的主要用途是在图类定义的**_内部_**,在这种情况下,我们不能在尚未完全定义的图类上使用graph_traits 。 graph_traits<Graph>::vertex_descriptor |
默认值 | 这必须与OutEdgeIter (出边迭代器). 。 OutEdgeIter (出边迭代器) |
adjacency_iterator_generator::type(const OutEdgeIter& it, const Graph* g)
按值返回。此外,它还具有以下构造函数修订日期
2001年8月19日