1

次のように定義された adjacency_list グラフがあります。

struct VertexProperties{
    std::string name;
    ...
};
typedef boost::adjacency_list<boost::vecS,
                              boost::vecS,
                              boost::directedS,
                              VertexProperties> GraphType;
typedef GraphType::vertex_descriptor VertexType;

グラフ、頂点、アウト エッジ インデックスが与えられた場合、隣接する頂点を取得するにはどうすればよいですか?

4

1 に答える 1

0

解決済み:

typedef 
boost::graph_traits<GraphType>::out_edge_iterator
out_edge_iterator;

typedef 
std::pair<out_edge_iterator, out_edge_iterator>
out_edge_iterator_range;

out_edge_iterator_range range = boost::out_edges(current_vertex, graph);
if (out_index > range.second - range.first){
    // out_index is invalid
}
out_edge_iterator iter = range.first + row;

VertexType out_vertex = iter->m_target;

于 2012-06-21T14:01:47.020 に答える