У меня есть вектор index
, который содержит индексы элементов, которые я хочу удалить с вектором words
.Ошибка выполнения при стирании элементов из std :: vector
vector<int> Index;
vector<int> words;
Я пробовал использовать этот метод, но моя программа вылетает во время работы, почему? Что происходит?
for(int t1 = 0; t1 < index.size(); t1++)
{
words.erase(words.begin()+ index[t1])
}
спасибо.
Проблема: Ваше слово вектор обновляется после каждого стирания (размер, итераторов и т.д.), но не ваш индекс вектора, поэтому каждая последующая итерация удалить нежелательный элемент и в одном экземпляре индексный вектор возвращает индекс, отсутствующий в векторе Word. Решение: вы можете найти его ниже в ответе. Пожалуйста, примите ответ, который вам нужен. – MarsRover