我很抱歉标题很棘手,这是示例
graph main_graph = //initialize graph
graph sub_graph = //pick a subset of edges from the main_graph
while ( ! sub_graph.size() == 0) {
select_edge(); //here I pick an edge basing on some heuristics
reduce_graph(); //here I remove some edges from the main_graph
sub_graph = //pick a subset of edges from the main_graph
}
所以关键是我必须sub_graph
在进入循环之前(因为它可能已经是空的)和进入新迭代之前编写相同的代码来定义。如果不是我实际上有三个具有相同问题的嵌套循环,并且初始化它们的代码sub_graph
是一堆代码行,那么这不会那么糟糕,所以我的代码看起来会重复很多。
关于如何更好地设计这个循环的任何建议?我没有限制(可以使用for
,do-while
...)
即使这是伪代码,因为更像是一个“设计”问题,我正在用 C++ 编码!