邻接迭代器适配器转换一个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_generator的主要用途是在图类的定义内部,并且在这种上下文中,我们不能使用graph_traits在尚未完全定义的图类上。 默认值 graph_traits<Graph>::vertex_descriptor |
OutEdgeIter | 这必须与graph_traits<Graph>::out_edge_iterator. 默认值 graph_traits<Graph>::out_edge_iterator |
adjacency_iterator_generator::type(const OutEdgeIter& it, const Graph* g)
修订2001 年 8 月 19 日
� Copyright Jeremy Siek 2000. 允许复制、使用、修改、销售和分发本文档,前提是在所有副本中都出现此版权声明。本文档按“原样”提供,不提供任何明示或暗示的保证,也不保证其适用于任何目的。