C++ Boost

time_stamper<TimeMap, TimeT, EventTag>

これは、アルゴリズム中のあるイベントの時刻 (時間的な順序) を"記録する"ために使う EventVisitor である。例として、グラフ探索中の頂点発見/終了の時刻を記録するのに使える。

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

Example

以下に、 time_stamper の使い方の例を示す。
  std::vector color(num_vertices(G));
  std::vector dtime(num_vertices(G));
  std::vector ftime(num_vertices(G));

  int time = 0;
  boost::breadth_first_search
    (G, vertex(s, G), make_bfs_visitor(
     std::make_pair(stamp_times(dtime.begin(), time, on_discover_vertex()),
                    stamp_times(ftime.begin(), time, on_finish_vertex()))),
     color.begin());

Model of

EventVisitor

Where Defined

boost/graph/visitors.hpp

Template Parameters

パラメータ説明デフォルト
TimeMap WritablePropertyMapkey_type はグラフの頂点記述子型か辺記述子型 (イベントタグの種類で決まる) 、value_typeTimeT 型から変換可能な型でなければならない。  
TimeT 時刻カウント用の型。時刻プロパティマップの value_type に変換可能でなければならない。  
EventTag グラフアルゴリズム中、いつ time_stamper が呼び出されるかを指定するタグ。  

Associated Types

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

Member Functions

メンバ説明
time_stamper(TimeMap time_pa, TimeT& t); 時刻プロパティマップ time_pa と時刻カウンタ t を使って time_stamter オブジェクトを構築する。
template <class X, class Graph>
void operator()(X x, const Graph& g);
時刻をインクリメントし、その時刻を (辺や頂点に) "記録"する。つまり、
put(time_pa, x, ++t);

Non-Member Functions

関数説明
template <class TimeMap, class TimeT, class Tag>
time_stamper<TimeMap, TimeT, Tag>
stamp_times(TimeMap pa, TimeT& t, Tag);
time_stamper を作る便利な方法。

See Also

Visitor concepts

イベントビジタ: distance_recordertime_stamperproperty_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
最新版ドキュメント (英語)