#

    property_writer<PropertyMap, OutputIterator, EventTag>

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

`bfs_visitor` や `dfs_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_type` は `OutputIterator` の `value_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_recorder` 、 `predecessor_recorder` 、 `time_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.30.0
最新版ドキュメント (英語)