У меня есть вектор, содержащий элементы, которые являются активными или неактивными. Я хочу, чтобы размер этого вектора оставался небольшим для проблем с производительностью, поэтому я хочу, чтобы элементы, отмеченные как неактивные, были удалены из вектора. Я попытался сделать это, итерации, но я получаю ошибку "итераторы векторов несовместимы".
vector<Orb>::iterator i = orbsList.begin();
while(i != orbsList.end()) {
bool isActive = (*i).active;
if(!isActive) {
orbsList.erase(i++);
}
else {
// do something with *i
++i;
}
}