У меня странная проблема при использовании функции erase () в std: vector. Я использую следующий код:
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, поэтому я не уверен, почему они не стираются. Это ошибка с синтаксисом или что-то еще?