提示コードですがvector iterator past end という例外を防ぐための手段としてないはずの次の要素を指してしまったらブレイクするというコードで防いでいるのですがこれは正しいのでしょうか?
cpp
1 2 for (std::vector<Bullet>::iterator itr = bullet->begin(); itr != bullet->end(); itr++) 3 { 4 glm::ivec2 pos = itr->getPosition(); 5 if (pos.x > SCREEN_WIDTH - 200) 6 { 7 itr = bullet->erase(itr); 8 if (itr == bullet->end()) 9 { 10 break; 11 } 12 13 } 14 else 15 { 16 itr->Update(); 17 } 18 } 19
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/02/12 10:57
退会済みユーザー
2021/02/12 11:20
2021/02/15 00:03
2021/02/15 01:48