predecessor_recorder<PredecessorMap, EventTag>
bfs_visitor や dfs_visitor などのアルゴリズム別のアダプタでラップする事で、 predecessor_recorder を グラフアルゴリズムで使えるようになる。また、std::pair を使って他のイベントビジタと結合して、 EventVisitorList を作れる。
Dijkstra のアルゴリズムや幅優先探索では、始点 (探索木の根) には先行点が代入されない。始点の先行点がそれ自身になるように初期化すると便利な事が多い。そうすれば自身を親とする唯一の頂点として始点を識別できるからだ。深さ優先探索のような森 (複数の探索木) を作るアルゴリズムを使う時は、ずべての頂点の先行点がそれ自身になるように初期化すると便利だ。そうすれば、全てのルートノードを識別できる。
パラメータ | 説明 | デフォルト |
---|---|---|
PredecessorMap | キーの型と値の型がグラフの頂点記述子型である WritablePropertyMap 。 | |
EventTag | グラフアルゴリズム中、いつ predecessor_recorder が呼び出されるかを指定するタグ。 EventTag は辺イベントでなければならない。 |
型 | 説明 |
---|---|
predecessor_recorder::event_filter | テンプレートパラメータ EventTag と同じ型。 |
メンバ | 説明 |
---|---|
predecessor_recorder(PredecessorMap pa); | 先行点プロパティマップ pa を使って predecessor_recorder オブジェクトを構築する。 |
template <class Edge, class Graph> void operator()(Edge e, const Graph& g); |
辺 e = (u,v) を渡されると、 u を v の先行点 (親) として記録する。 |
関数 | 説明 |
---|---|
template <class PredecessorMap, class Tag> predecessor_recorder<PredecessorMap, Tag> record_predecessors(PredecessorMap pa, Tag); | predecessor_recorder を作る便利な方法。 |
イベントビジタ: distance_recorder 、
time_stamper 、
property_writer 。
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 Hiroshi Ichikawa
オリジナルの、及びこの著作権表示が全ての複製の中に現れる限り、この文書の複製、利用、変更、販売そして配布を認める。このドキュメントは「あるがまま」に提供されており、いかなる明示的、暗黙的保証も行わない。また、いかなる目的に対しても、その利用が適していることを関知しない。
このドキュメントの対象: Boost Version 1.29.0
最新版ドキュメント (英語)