27 Eylül 2017 Çarşamba

graph make_transform_value_property_map metodu

Giriş
Şu satırı dahil ederiz.
#include <boost/property_map/transform_value_property_map.hpp>
Graph'ı dolaşırken belirtilen metodu çağırarak graph vertex'inden bilgi almayı sağlar.

Birinci parametre çağrılacak metod veya üye alandır. İkinci parametre ise vertex dizisidir.

Örnek
Elimizde bir graph olsun
using Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS,
  std::shared_ptr<Foo> >;
Bu graph'ı dolduralım ve daha sonra ekranda göstermek isteyelim. Şöyle yaparız.
#include <boost/graph/graph_utility.hpp>
void DebugPrint(std::string const& caption, Graph const& g) {
  auto name_map = boost::make_transform_value_property_map(std::mem_fn(&Foo::name),
    get(boost::vertex_bundle, g));

  boost::print_graph(g, name_map, std::cout << "==== " << caption << "\n");
}
Metodu çağırmak için şöyle yaparız.
DebugPrint("graph", g);
Çıktı olarak şunu alırız
==== graph
Foo 0 --> Foo 1 
Foo 1 --> 

Hiç yorum yok:

Yorum Gönder