トリッキーなタイトルで申し訳ありません、これが例です
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
ループに入る前 (すでに空である可能性があるため) と、新しい反復に入る直前に、まったく同じコードを記述して を定義する必要があるということです。同じ問題を抱えた 3 つのネストされたループが実際にあり、初期化するコードが一連のコード行であることがなければ、これはそれほど悪くはありませんsub_graph
。
このループをより適切に設計する方法について何か提案はありますか? 制限はありません (使用できますfor
, do-while
...)
これは疑似コードですが、「設計」の問題であるため、C++ でコーディングしています。