【发布时间】:2011-10-28 01:49:54
【问题描述】:
在我目前正在实施的算法中,有这条线(其中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
}
目前,我正在为u 明确地在循环之外执行Do stuff 的内容,但我想在for 循环中执行此操作。是否有一些技巧可以创建迭代器,就好像 u 从 boost::in_edges 返回一样?
【问题讨论】:
-
那是一个联合,不是
Pred(u) ∪ {u}中间的一个u,对吧? -
@awoodland:是的。我同意,字体的可读性不是很好。
-
可能只是我的眼睛和这台显示器......
标签: c++ boost iterator boost-graph