6

バンドルされたプロパティと adjacency_list を使用しており、サブグラフ クラスを使用したいと考えています。

struct Vertex
{
   int index;
   int seed;
}; 

struct Edge
{
 bool visted;
 double weight;
};

typedef adjacency_list<listS, listS, undirectedS, Vertex, property<edge_index_t,int,Edge> > Graph;
typedef subgraph<Graph> testSubgraph;

サブグラフは2つのエッジを比較するproperty<edge_index_t,int,Edge>必要があるため、この部分が必要です。edge_index_t

今私の質問は、サブグラフにバンドルされたプロパティを使用してエッジを追加するにはどうすればよいですか? 通常のグラフでproperty<edge_index_t,int,Edge>は、次のようにエッジを追加します。

Edge e;
vertex_descriptor u,v; 
// fill in u and v;
e.weight = 1.0;
e.visted=false;
add_edge(u,v,e,graph);

しかし、これはサブグラフでは機能しません。

誰かがこれに対する解決策を知っていることを願っています。

ありがとう

ベン

4

2 に答える 2

1

隣接リストには edge_index:es がありません。自分でインデックスを割り当てる必要がありますが、これは に を追加しsize_t indexEdgeエッジを作成するときにインデックスを割り当てるだけです。

ブースト サブグラフは誘導サブグラフであるため、おそらくサブグラフのエッジを作成する必要はありません。したがって、両方のエンドポイントがサブグラフにあるグラフのすべてのエッジがサブグラフに含まれます。

于 2011-09-30T09:43:41.940 に答える