В алгоритме, который я сейчас реализую, есть эта строка (где u
- вершина графа, а Pred(u)
- все вершины, ребра которых указывают на u
):
for all s ∈ Pred(u) ∪ {u}
Часть Pred(u)
, которую я перевожу в код boost :: graph, вот так:
boost::graph_traits<Graph>::in_edge_iterator in_begin, in_end;
boost::tie(in_begin, in_end) = boost::in_edges(u, G);
for(boost::graph_traits<Graph>::in_edge_iterator i = in_begin; i != in_end; ++i) {
// Do stuff
}
Пока что я делаю Do stuff
вне цикла явно для u
,но я бы хотел сделать это в цикле for
.Есть ли хитрость для создания итераторов, как если бы boost::in_edges
был возвращен из *1015*?