最終更新日時:
が更新

履歴 編集

distance_recorder<DistanceMap, EventTag>

これは、グラフ探索中に、ある始点から各頂点までの距離を (property map を使って) 記録する EventVisitor である。辺 e = (u,v) に対して実行されると、 v への距離は u への距離より大きくなる。 distance_recorderon_tree_edgeon_relax_edge イベントでよく使われる。頂点イベントには使用できない。

bfs_visitordfs_visitor などのアルゴリズム別のアダプタでラップすることで、 distance_recorder を グラフアルゴリズムで使えるようになる。また、std::pair を使って他のイベントビジタと結合して、 EventVisitorList を作れる。

コード例

例は bfs_visitor を参照。

モデル

EventVisitor

定義場所

boost/graph/visitors.hpp

テンプレートパラメータ

パラメータ 説明 デフォルト
DistanceMap キーの型と値の型がグラフの頂点記述子型である WritablePropertyMap [訳注1]
EventTag グラフアルゴリズム中、いつ distance_recorder が呼び出されるかを指定するタグ。 EventTag は辺イベントでなければならない。

関連型

説明
distance_recorder::event_filter テンプレートパラメータ EventTag と同じ型。

メンバ関数

メンバ 説明
distance_recorder(DistanceMap pa); 距離プロパティマップ pa を使って distance_recorder オブジェクトを構築する。
template <class Edge, class Graph>
void operator()(Edge e, const Graph& g);
e = (u,v) を渡されると、 u への距離に 1 を足したものを v への距離として記録する。

非メンバ関数

関数 説明
template <class DistanceMap, class Tag>
distance_recorder<DistanceMap, Tag>
record_distances(DistanceMap pa, Tag);
distance_recorder を作る便利な方法。

関連項目

Visitorコンセプト

イベントビジタ: predecessor_recordertime_stamperproperty_writer

訳注

[訳注1] 値の型は整数である。


Copyright © 2000-2001

Japanese Translation Copyright © 2003 Hiroshi Ichikawa

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