#

    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

- `Graph` はグラフ・コンセプトの一つをモデルとする。

## 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.30.0
最新版ドキュメント (英語)