C++ Boost

PropertyGraph

PropertyGraph はグラフ中の頂点または辺の各々に関連したいくつかのプロパティを 持つグラフである。与えられたグラフが各頂点または各辺に関連したいくつかの プロパティを持っている事がある時に、タグはどのプロパティがアクセスされて いるか確認するために使われる。グラフはプロパティ・マップ・オブジェクトを 返す関数を提供する。

Refinement of

Graph

Notation

G PropertyGraph のモデルの型。
g G のオブジェクト。
X 頂点または G のための辺記述子型のどちらか一方。
x X のオブジェクト。
Map boost::property_map<G, Property>::const_type
v boost::property_traits<Map>::value_type のオブジェクト。
PropertyTag PropertyTag コンセプトをモデルとした型。
p PropertyTag のオブジェクト。
pmap Map のオブジェクト。

Associated types

boost::property_map<G, PropertyTag>::type
PropertyTag によって指定されるプロパティのためのプロパティ・マップの 型。この型はグラフの頂点または記述子型と同じキー型を持つ ReadWritePropertyMap のモデルでなければならない。
boost::property_map<G, PropertyTag>::const_type
PropertyTag によって指定されるプロパティのための const プロパティ・マップの型。この型はグラフの頂点または辺記述子型と同じキー型を持つ ReadablePropertyMap のモデルでなければならない。

Valid Expressions

get(p, g) PropertyTag 型によって指定されるプロパティのためのプロパティ・マップ を返す。オブジェクト p は型を伝えるために使われるだけである。
返却値型: g が変更可能ならば boost::property_map<G, PropertyTag>::type で、そうでなければ boost::property_map<G, PropertyTag>::const_type
get(p, g, x) オブジェクト x (頂点または辺) に関連した、PropertyTag 型 によって指定されるプロパティ型を返す。オブジェクト p は型を 伝えるために使われるだけである。 この関数は次と同義である:
get(get(p, g), x)
返却値型: boost::property_traits<Map>::value_type
put(p, g, x, v) オブジェクト x (頂点または辺) に関連した、PropertyTag 型 によって指定されるプロパティを値 v に設定する。オブジェクト p は型を伝えるために使われるだけである。 この関数は次と同義である:
pmap = get(p, g);
put(pmap, x, v)

返却値型: void

Complexity

get() プロパティ・マップ関数は定数時間のはずである。

Models

Concept Checking Class

  template <class Graph, class X, class PropertyTag>
  struct PropertyGraphConcept
  {
    typedef typename property_map<G, PropertyTag>::type Map;
    typedef typename property_map<G, PropertyTag>::const_type const_Map;
    void constraints() {
      function_requires< GraphConcept<G> >();
      function_requires< ReadWritePropertyMapConcept<Map, X> >();
      function_requires< ReadablePropertyMapConcept<const_Map, X> >();

      Map pmap = get(PropertyTag(), g);
      pval = get(PropertyTag(), g, x);
      put(PropertyTag(), g, x, pval);
      ignore_unused_variable_warning(pmap);
    }
    void const_constraints(const G& g) {
      const_Map pmap = get(PropertyTag(), g);
      pval = get(PropertyTag(), g, x);
      ignore_unused_variable_warning(pmap);
    }
    G g;
    X x;
    typename property_traits<Map>::value_type pval;
  };

See Also

property_map

Copyright © 2000-2001 Jeremy Siek, Indiana University (jsiek@osl.iu.edu)

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

このドキュメントの対象: Boost Version 1.29.0
最新版ドキュメント (英語)