## EdgeListGraph

EdgeListGraph コンセプトは Graph コンセプトを 精製し、グラフ中の全ての辺への効率的なアクセスに必要とされるものを付け加え ている。

### Refinement of

Graph

### Notation

`G` | EdgeListGraph のモデルの型。
`g` | 型が `G` のオブジェクト。
`e` | 型が `boost::graph_traits<G>::edge_descriptor` のオブジェクト。

### Associated Types

`boost::graph_traits<G>::traversal_category` このタグ型は `edge_list_graph_tag` に変換可能でなければならない。
    boost::graph_traits<G>::edge_iterator
`edges(g)` を経由して得られる辺イテレータはグラフ中の全ての辺への アクセスを提供する。辺イテレータの型は MultiPassInputIterator の要求を満たしていなけれはならない。辺イテレータの値型はグラフの辺記述子型と 同じでなければならない。
    boost::graph_traits<G>::edges_size_type
符号無し汎整数型はグラフ中の辺の数を表すのに使われる。

### Valid Expressions

`edges(g)` | グラフ `g` 中の全ての辺へのアクセスを提供するイテレータ範囲を返す。 返却値型: `std::pair<edge_iterator, edge_iterator>`
`num_edges(g)` | グラフ `g` 中の辺の数を返す。 返却値型: `edges_size_type`
`source(e, g)` | `e` によって表される辺 (u,v) の u のための頂点記述子を 返す。 返却値型: `vertex_descriptor`
`target(e, g)` | `e` によって表される辺 (u,v) の v のための頂点記述子を 返す。 返却値型: `vertex_descriptor`

### Models

- `adjacency_list`
- `edge_list`

### Complexity guarantees

`edges()` 関数、`source()` 関数、そして `target()` 関数は すべて定数時間内に終了するはずである。

### See Also

Graph concepts

### Concept Checking Class

      template <class G>
      struct EdgeListGraphConcept
      {
        typedef typename boost::graph_traits<G>::edge_iterator
          edge_iterator;
        void constraints() {
          function_requires< GraphConcept<G> >();
          function_requires< MultiPassInputIteratorConcept<edge_iterator> >();

          p = edges(g);
          E = num_edges(g);
          e = *p.first;
          u = source(e, g);
          v = target(e, g);
          const_constraints(g);
        }
        void const_constraints(const G& g) {
          p = edges(g);
          E = num_edges(g);
          e = *p.first;
          u = source(e, g);
          v = target(e, g);
        }
        std::pair<edge_iterator,edge_iterator> p;
        typename boost::graph_traits<G>::vertex_descriptor u, v;
        typename boost::graph_traits<G>::edge_descriptor e;
        typename boost::graph_traits<G>::edges_size_type E;
        G g;
      };

Copyright © 2000-2001 | Jeremy Siek, Indiana University (jsiek@osl.iu.edu)

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

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