0

ブースト グラフの概念を見てみましたが、頂点上のペアからエッジを取得するためのインターフェイスは提供されていません。私が試してみました:

boost::graph_traits<G>::edge_descriptor edge(u, v); // does not work

ただし、プロパティ タイプへの追加のポインターが必要です。どうすればそれを手に入れることができますか?

4

1 に答える 1

1

boost::edge() の 3 番目のパラメータはグラフです。

また、関数はエッジ記述子を直接返すのではなく、エッジの存在に応じて、エッジ記述子とブール値を含むペアを返すことに注意してください。

このようなもの:

G myGraph;   // construct the graph
....         // populate it
....         // select a pair of vertices u, v

// get the edge between the vertices, if it exists
typedef boost::graph_traits<G>::edge_descriptor edge_t;
edge_t found_edge;
std::pair < edge_t, bool > p = boost::edge( u, v, myGraph ); 
if( ! p.second) {
   // edge does not exist
   ...
} else {
   found_edge = p.first;
   ...
}
于 2013-07-19T14:01:03.043 に答える