ゲームの連続ループで移動したいオブジェクトがあります。std::vector
ウェイポイントとして使用したい一連の座標があります。
std::vector<T>::iterator
サイクリック (サーキュレーターとも呼ばれます)を作成する方法はありますか?
私が思い付くことができる最善の方法は、2 つのイテレータを用意し、最初のイテレータが使い果たされるたびに、2 番目のイテレータの値を代入することです (これは他のことには使用されません)。代入演算子は、反復子がインデックスを保持するために使用しているものをコピーしますか、それとも単に参照されるだけですか (したがって、2 回目のラウンドの後は役に立たなくなります)。
オブジェクトがウェイポイントを永遠に移動するようにしたいのですが (オブジェクトが破棄されたが、そのメソッドでそれが起こらない場合を除きます)、イテレータはフレームごとに 1 回だけ呼び出され、ゲーム内の他のオブジェクトを更新できるように戻る必要があります。 .
ソリューションは、gcc および Microsoft コンパイラで動作する必要があります (標準の C++ で記述できない場合)。