C++ Boost

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

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