#

    distance_recorder<DistanceMap, EventTag>

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

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

### Example

例は `bfs_visitor` を参照。

### Model of

EventVisitor

### Where Defined

`boost/graph/visitors.hpp`

### Template Parameters

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

## Associated Types

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

### Member Functions

メンバ | 説明
--- | ---
`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 への距離として記録する。

### Non-Member Functions

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

### See Also

Visitor concepts

イベントビジタ: `predecessor_recorder` 、 `time_stamper` 、 `property_writer` 。

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

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