C++ Boost

graph_traits<Graph>

丁度 STL の イテレータのように、グラフは関連型を持っている。様々なグラフ・コンセプトの中で述べてあるが、 一つのグラフはとても少数の関連型 (vertex_descriptor, edge_descriptor, out_edge_iterator等) を持つ。どの特定の グラフ・コンセプトも、下記の定義された関連型のすべては必要でない。 一つまたはそれ以上のグラフ・コンセプトにぴったりと合う (fullfits) クラスを実装 する際には、コンセプトが必要としない関連型は、グラフ・クラスの内側でネス トした typedef が使われている時は型として void を用いてもよいし、また はグラフ・クラスのための graph_traits 特殊化版から typedef を取り除い てもよい。
  template <typename Graph>
  struct graph_traits {
    typedef typename Graph::vertex_descriptor      vertex_descriptor;
    typedef typename Graph::edge_descriptor        edge_descriptor;
    typedef typename Graph::adjacency_iterator     adjacency_iterator;
    typedef typename Graph::out_edge_iterator      out_edge_iterator;
    typedef typename Graph::in_edge_iterator       in_edge_iterator;
    typedef typename Graph::vertex_iterator        vertex_iterator;
    typedef typename Graph::edge_iterator          edge_iterator;

    typedef typename Graph::directed_category      directed_category;
    typedef typename Graph::edge_parallel_category edge_parallel_category;
    typedef typename Graph::traversal_category     traversal_category;

    typedef typename Graph::vertices_size_type     vertices_size_type;
    typedef typename Graph::edges_size_type        edges_size_type;
    typedef typename Graph::degree_size_type       degree_size_type;
  };

Where Defined

boost/graph/graph_traits.hpp

Template Parameters

パラメータ説明
Graph 関連した型がアクセスされるグラフ型。

Model of

DefaultConstructible and Assignable

Type Requirements

Members

メンバ説明
vertex_descriptor 頂点を表すオブジェクトへの型。
edge_descriptor 辺を表すオブジェクトへの型。
adjacency_iterator 隣接する頂点へのイテレータ。
out_edge_iterator 出辺へのイテレータ。
in_edge_iterator 入辺へのイテレータ。
vertex_iterator グラフの頂点集合へのイテレータ。
edge_iterator グラフの辺集合へのイテレータ。
directed_category グラフが無向であるか (undirected_tag) 有向であるか (directed_tag)。
edge_parallel_category グラフが多重辺を許可するか (allow_parallel_edge_tag) 多重辺を自動的に削除するか (disallow_parallel_edge_tag)。
traversal_category グラフ上の頂点と辺を訪れることのできる方法。 traversal category tag は、incidence_graph_tag, adjacency_graph_tag, bidirectional_graph_tag, vertex_list_graph_tag, edge_list_graph_tag, vertex_and_edge_list_graph_tag, adjacency_matrix_tag である。 この内の一つを継承した独自の tag も作成可能である。
vertices_size_type グラフの頂点数を表す符号無し汎整数型。
edge_size_type グラフの辺数を表す符号無し汎整数型。
degree_size_type 辺の次数を表す汎整数型。


Copyright © 2000-2001 Jeremy Siek, Indiana University (jsiek@osl.iu.edu)
Lie-Quan Lee, Indiana University (llee@cs.indiana.edu)
Andrew Lumsdaine, Indiana University (lums@osl.iu.edu)

Japanese Translation Copyright © 2003 Takashi Itou
オリジナルの、及びこの著作権表示が全ての複製の中に現れる限り、この文書の複製、利用、変更、販売そして配布を認める。このドキュメントは「あるがまま」に提供されており、いかなる明示的、暗黙的保証も行わない。また、いかなる目的に対しても、その利用が適していることを関知しない。

このドキュメントの対象: Boost Version 1.29.0
最新版ドキュメント (英語)