のは、私はこのコードを持っているとしましょう:ベクトルが追加されたときに反復可能な参照を保持する方法
std::vector<Object*> objects;
std::vector<Object*>::iterator iter;
for (iter = objects.begin(); iter != objects.end(); iter++) {
if (condition)
objects.push_back(new Object());
}
しかし、一backが発生したときに、iter
がundereferenceableになります。 iter
をリセットせずに、どうやって逆参照できますか?私がそれをリセットしなければならない場合、それを行う簡単な方法はありますか?
このアイデアでは、反復処理中にオブジェクトを最後に追加すると、追加されるオブジェクトが増え反復が繰り返されるため、無限ループに陥る可能性がある終了することはありません(これは常に繰り返し処理する別のオブジェクトです)。 – MerickOWA