私はグーグルやドキュメントを読んで自分自身に答えることができなかったBoost Graphic Libraryに関する別の問題があります。それは私の他の質問に直接関係していないので、私は新しいスレッドを開始する方が良いと思った。BGL:ノードとエッジのデータに直接アクセスするにはどうすればよいですか?
私は隣接関係のレイアウトを持つグラフを持っており、バンドルされたプロパティを使ってノードとエッジのデータにアクセスします。私は便宜のために私のグラフのためのtypedefを使用します。したがって、私は格納されたデータにアクセスすることができます。
Graph[my_vertex_descriptor].setX(4);
Graph[my_vertex_descriptor].setY(10);
今、私はそのような何かを入力できるようにするデータ格納オブジェクトへの参照を定義したいと思います::のvertex_descriptorため、このような何か入力して、これにより
typedef Graph[vertex_descriptor]::type Vertex;
Vertex v = Graph[my_vertex_descriptor];
v.setX(4);
v.setY(10);
をかMapの[]operator
と特定の記述子オブジェクトを使用してアクセスされる、マップされた値の不必要な再計算を避けるために同様のアプローチをとっています。私の頂点と辺には多くのデータが含まれているので、現在のコードではこのデータを扱うために同じ値の再計算が数多く生成されることがあります。これは醜いようです。
誰かが私がやろうとしていることを達成する可能性があるかどうかを知っていますか?私の頭の上オフ
上記実際にすべきである: は 'Bundled_vertex_property prop_v = GET(vertex_bundle、my_graph、のvertex_descriptor)' 'Bundled_edge_property prop_e = GET(edge_bundle、my_graph、のvertex_descriptor)' はまた、 'edge_bundle'と' vertex_bundle'を注意変数ではなく、あらかじめ定義された記述子です。 –