std:vectorでerase()関数を使用すると、奇妙な問題が発生します。私は次のコードを使用します:
int count = 0;
for (int itr=0; itr<b.size(); ++itr) {
if (b[count].notEmpty = false) {
b.erase(b.begin()+count);
--count;
}
++count;
}
ただし、何らかの理由で、bから実際に消去される要素はありません。bは他の場所で次のように宣言されています。
vector<block_data> b;
ここで、block_dataは構造体であり、ブール値notEmptyが含まれています。一部のbの要素は、コードの前半でnotEmpty = falseで適切に割り当てられているため、なぜそれらが消去されないのかわかりません。構文のエラーですか、それとも他の何かですか?