概要簡単な様で意外と難しいc++でのループ内のvector要素の削除。 とりあえず答えが知りたい方は一番下に行ってください笑 c++において、ループ内でvectorから要素を削除する場合、最初に思い浮かぶ形基本方針は以下です。 // 0 〜 4が入ったvector型変数numbersを用意 std::vector<int> numbers {0, 1, 2, 3, 4}; // aとbを除きたい int a = 1; int b = 3; // iteratorで内部要素を回し、該当値であればその要素を削除 for (auto itr = numbers.begin(); itr != numbers.end(); itr++) { if (((*itr) == a) || ((*itr) == b)) { numbers.erase(itr); } } まず、やりたい事を順当にコード化す
![【コピペでOK!】c++のループ内でvectorの要素の削除 | 技術は熱いうちに打て!](https://cdn-ak-scissors.b.st-hatena.com/image/square/36759ef9d7212b634b3a0d6fa0547e4d70f409a3/height=288;version=1;width=512/https%3A%2F%2Fblog.dalt.me%2Fwp-content%2Fuploads%2F2015%2F01%2Fc.png)