グラフ・コンセプトは全てのグラフの概念に共通する要求をある程度含んでいる。 これらは vertex_descriptor や edge_descriptor 等、 そして num_vertices()関数と num_edges()関数 に関連する型をいくつか含んでいる。 注目すべきは、 グラフのモデルは、Assignable のモデルである必要はない ということである。 なぜなら、アルゴリズムはグラフのオブジェクトを参照で渡すべきだからである。
G | グラフのモデルであるところの型。 |
g | 型 G のオブジェクト。 |
boost::graph_traits<G>::vertex_descriptor頂点記述子は抽象的なグラフのインスタンスにおける個々の頂点に対応している。 頂点記述子は Default Constructibleで、 Assignableで、 Equality Comparable でなければならない。 |
boost::graph_traits<G>::edge_descriptor辺記述子はグラフにおける個々の辺 (u,v) に対応している。 辺記述子は Default Constructibleで、 Assignableで、 Equality Comparable でなければならない。 |
boost::graph_traits<G>::directed_categorydirected_tag と undirected_tag から選択する。 |
boost::graph_traits<G>::edge_parallel_categoryグラフのクラスが多重辺(始点と終点が同じ辺)の挿入を許可するかどうかを示す。 2つのタグがあり、 allow_parallel_edge_tag と disallow_parallel_edge_tag である。 |
boost::graph_traits<G>::traversal_categoryグラフ上の頂点、辺を巡回するための方法を示す。 incidence_graph_tag、 adjacency_graph_tag、bidirectional_graph_tag、 vertex_list_graph_tag、edge_list_graph_tag、そして adjacency_matrix_tag から選択する。 |
template <class G> struct GraphConcept { typedef typename boost::graph_traits<G>::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits<G>::edge_descriptor edge_descriptor; typedef typename boost::graph_traits<G>::directed_category directed_category; typedef typename boost::graph_traits<G>::edge_parallel_category edge_parallel_category; typedef typename boost::graph_traits<G>::traversal_category traversal_category; void constraints() { function_requires< DefaultConstructibleConcept<vertex_descriptor> >(); function_requires< EqualityComparableConcept<vertex_descriptor> >(); function_requires< AssignableConcept<vertex_descriptor> >(); function_requires< DefaultConstructibleConcept<edge_descriptor> >(); function_requires< EqualityComparableConcept<edge_descriptor> >(); function_requires< AssignableConcept<edge_descriptor> >(); } G g; };
Copyright © 2000-2001 | Jeremy Siek, Indiana University (jsiek@osl.iu.edu) |
Japanese Translation Copyright (C) 2003 KANAHORI Toshihiro <kanahori@k.tsukuba-tech.ac.jp>
オリジナルの、及びこの著作権表示が全ての複製の中に現れる限り、この文書の複製、利用、変更、販売そして配布を認める。このドキュメントは「あるがまま」に提供されており、いかなる明示的、暗黙的保証も行わない。また、いかなる目的に対しても、その利用が適していることを関知しない。