私は非常に基本的なゲームに取り組んでおり、ゲームに関連するオブジェクトのstd::listコレクションがあります。私はそれを次のように宣言しました:
std::list<Target> targets;
私がそれを繰り返すとき、
for (std::list<Target>::iterator iter = targets.begin(); iter != targets.end(); iter++) {
Target t = *iter;
t.move();
}
GUIでオブジェクトが更新されていません。ただし、反復ループを。に置き換えるとtargets.front().move()
、1つのオブジェクトが正しく移動します。これは、ポインターを使用してコレクションを反復処理していないためだと思います。誰かがそれがどのように行われるかを説明できますか?ありがとう。