C++ Boost

property_writer<PropertyMap, OutputIterator, EventTag>

これは、アルゴリズム内のあるイベントで、頂点や辺の特徴[訳注1]を出力するために使う EventVisitor である。

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

Example

以下は examples/dave.cpp からの抜粋である。
  std::ostream_iterator cout_int(std::cout, " ");
  std::ostream_iterator cout_char(std::cout, " ");

  boost::breadth_first_search
    (G, vertex(a, G), make_bfs_visitor(
     std::make_pair(write_property(name, cout_char, on_discover_vertex()),
     std::make_pair(write_property(distance.begin(), cout_int, 
                                   on_discover_vertex()),
     std::make_pair(print_edge(name, std::cout, on_examine_edge()),
                    print_endl(std::cout, on_finish_vertex()
                    ))))));

Model of

EventVisitor

Where Defined

boost/graph/visitors.hpp

Template Parameters

パラメータ説明デフォルト
PropertyMap ReadablePropertyMap 。その key_type はグラフの頂点記述子型か辺記述子型 (イベントタグの種類で決まる) で、 value_typeOutputIteratorvalue_type に変換可能でなければならない。  
OutputIterator 特徴の値を出力するために使うイテレータの型。 OutputIterator のモデルでなければならない。  
EventTag グラフアルゴリズム中、いつ property_writer が呼び出されるかを指定するタグ。  

Associated Types

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

Member Functions

メンバ説明
property_writer(PropertyMap pa, OutputIterator out); プロパティマップ pa と出力イテレータ out を使って property_writer オブジェクトを構築する。
template <class X, class Graph>
void operator()(X x, const Graph& g);
x に対応する特徴の値を出力イテレータに書き込む。
*out++ = get(pa, x);

Non-Member Functions

関数説明
template <class PropertyMap, class OutputIterator, class Tag>
property_writer<PropertyMap, OutputIterator, Tag>
write_property(PropertyMap pa, OutputIterator out, Tag);
property_writer を作る便利な方法。

See Also

Visitor concepts

イベントビジタ: distance_recorderpredecessor_recordertime_stamper


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