У меня есть вектор stl, состоящий из нескольких элементов. Мне нужно перебрать этот вектор и удалить элементы, которые соответствуют некоторым критериям. Итак, я написал этот код
for (int j = imageDataVector.size()-1; j >= 0; j--) {
if(imageDataVector[i] < threshold)
imageDataVector.erase(imageDataVector.end() - j);
}
Этот код отлично работает почти во всех случаях, однако, если все элементы вектора соответствуют критериям, я получаю сообщение об ошибке:
vector erase iterator outside the range
Эта ошибка возникает, если у меня остался только один элемент в векторе. Я делаю не так?