問題タブ [boost-graph]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
12197 参照

c++ - グラフの視覚化(ブーストグラフ)

Boostグラフライブラリを使用したC++プログラムがあります。ノードに含まれる特定の位置の値に従ってグラフ(ノードおよびオプションでエッジ)を視覚化する方法があるかどうか疑問に思います。以下の画像の例を見て、私が視覚化したいものを理解してください:http: //img11.hostingpics.net/pics/647608graphViz.png

ありがとう。

0 投票する
1 に答える
857 参照

c++ - グラフに頂点のインデックスを含めるための外部プロパティの追加(ブースト)

associative_property_mapを使用して頂点のインデックスを含めようとしていますが、次の簡単なコードで次のエラーが発生します。問題は何ですか?

エラー:

function'void boost :: put(const boost :: put_get_helper&、K、const V&)[with PropertyMap = boost ::associative_property_map、std :: allocator>

、Reference = unsigned int&、K = void *、V = int]':| C:\ Users \ memo \ Desktop \ Debuged \ boostGraph \ main.cpp |39|ここからインスタンス化| c:\ program files \ codeblocks \ mingw \ bin .. \ lib \ gcc \ mingw32 \ 4.4.1 ........ \ include \ boost \ property_map \ property_map.hpp | 361 |エラー:'に一致しませんoperator []'in'(const boost ::associative_property_map、std :: allocator >>>&)((const boost ::associative_property_map、std :: allocator >>> *)(&pa))[k]'| c:\ program files \ codeblocks \ mingw \ bin .. \ lib \ gcc \ mingw32 \ 4.4.1 ........ \ include \ boost \ property_map \ property_map.hpp | 498 |注:候補は次のとおりです:typename UniquePairAssociativeContainer :: value_type :: second_type&boost ::associative_property_map :: operator [](const typename UniquePairAssociativeContainer :: key_type&)const [with UniquePairAssociativeContainer = std :: map、std :: allocator >>] | || ===ビルドが完了しました:1エラー、0警告=== |

ありがとう

0 投票する
1 に答える
2755 参照

c++ - BGL のエッジのカスタム プロパティ

0 投票する
3 に答える
332 参照

c++ - 独自のクラスでブースト グラフをラップできますか

メンバーとしてboost::adjacency_matrixグラフを使用して独自のクラスを作成しようとしていますが、コンパイル エラーが発生します。コンパイルされないサンプル クラス:

そしてコンパイルエラー:

そのコンパイラはグラフが関数だと思っているようです?!

クラスのメンバーとしてboost::adjacency_matrixを宣言する方法を教えてもらえますか?

0 投票する
1 に答える
1832 参照

c++ - ブーストgraphvizカスタム頂点ラベル

現在、いくつかの確率ツリーを表し、頂点とエッジのタイプにカスタム構造体を使用するプロジェクトの次のコードがあります。

私は現在、ブーストgraphvizを使用しているが、ラベルがないいくつかの単純なツリーの単純な視覚的表現を持っています。Edge構造体で見つかった確率でラベル付けされた頂点と、Vertex構造体で見つかった関連名でラベル付けされた頂点の間の接続が必要です。これを行う最初の試みは、次のコードを使用することでした。

しかし、頂点の名前が出力されないため、これは私が望むことを行わないようです。ここで何を変更する必要がありますか?

0 投票する
2 に答える
1813 参照

c++ - C++ および汎用グラフ距離アルゴリズム

私の問題は次のとおりです。私はグラフ ライブラリを作成することで C++ を学習しており、できるだけ多くの汎用プログラミング手法を利用したいと考えています。したがって、「BOOST を使用」して質問に答えても役に立ちません。実際、私は自分の質問に対する答えを得るために BOOST のコードを調べてみましたが、特定の関数がどこで定義されているかさえわからないので、それは謙虚な経験でした。私のレベルでそれから学ぶには、C ++のレベルが高すぎます。

つまり、私のライブラリは次のようにテンプレート化されています。

エッジまたはノードから派生したクラスを使用して、より複雑なグラフを作成しているため、加重エッジ クラスは単純です。

ここでの問題は、2 つの頂点間の最短距離を計算するアルゴリズムをこの構造に実装したいということです。1 つは加重エッジ用、もう 1 つは非加重エッジ用ですが、変更はわずかです。1 つはweighted_edge(または派生クラス) のメンバー フィールドにアクセスし、もう 1 つはユニタリ ウェイトを想定します。

両方のケースでコードを 1 つだけ持つことができるように、これを行う方法はありますか?

1 つの解決策は、重み (または重み付けされていない場合は「1」) を返すメンバー関数を使用することedge::get_weight()ですが、重み付けされていないエッジ クラスに特定の重みタイプを使用する必要があるため、変なにおいがします。つまり、テンプレートは

重みが関係しているとは思わないため、これは正確にはユーザーフレンドリーではないか、少なくとも混乱を招きます。

BGL はget()関数を使用して重みを取得します。weightに応じて1 または を返す関数を作成できますが、 or ?edge_Tから派生したときに何が起こるかが懸念されます。書く場合:edgeweighted_edge

派生クラスを渡すとどうなるでしょうか? これら2つから「近い」基本クラスを選択するC++メカニズムはありますか?

0 投票する
1 に答える
1150 参照

c++ - 同じ頂点を持つ 2 つのブースト グラフを比較するには

初歩的な質問かもしれませんが、頂点の数と名前が同じである 2 つのグラフを比較するには、あなたの助けが必要です。

私のテーマの概要は次のとおりです。

前もって感謝します。

0 投票する
2 に答える
1972 参照

c++ - ブースト グラフ ライブラリの std::vector に関連付けられた外部プロパティ マップ

現在、ブースト グラフの外部プロパティを定義しようとしています。バンドルされたプロパティを内部プロパティとして使用します。

ただし、アルゴリズム中にいくつかの外部プロパティが必要です。つまり、グラフのエッジ/頂点を std::vector に格納された要素にマップして、 operator[] (Edge e)。私は手がかりなしにブーストのドキュメントの前に立っています。property_map が必要なようですが、これらをベクトルと一緒に使用する方法がわかりません。これまでに見つけた唯一の例は、頂点からベクトルへのマップに関するものですが、頂点は unsigned int であるため、これは些細なことです。

これまでのところ、boost には本当に不満を感じています。自分でグラフ クラスを実装してテストする時間を大幅に節約できたと思います。このクレイジーなテンプレート メタプログラミングのものは本当にわかりません...

0 投票する
1 に答える
811 参照

c++ - ブーストグラフにカスタムエッジラベルを追加するにはどうすればよいですか?

タイプのブーストグラフを使用しています:

次に、グラフの各エッジにスティングタイプのエッジラベルを追加する必要があります。さらに、プログラムでそれらを使用して、さまざまな種類のエッジを区別することができます。

よろしくお願いします。