ブースト グラフの概念を見てみましたが、頂点上のペアからエッジを取得するためのインターフェイスは提供されていません。私が試してみました:
boost::graph_traits<G>::edge_descriptor edge(u, v); // does not work
ただし、プロパティ タイプへの追加のポインターが必要です。どうすればそれを手に入れることができますか?
ブースト グラフの概念を見てみましたが、頂点上のペアからエッジを取得するためのインターフェイスは提供されていません。私が試してみました:
boost::graph_traits<G>::edge_descriptor edge(u, v); // does not work
ただし、プロパティ タイプへの追加のポインターが必要です。どうすればそれを手に入れることができますか?
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;
...
}