У меня есть вектор, и я ищу элемент в нем, итерации по вектору с циклом for-each. Если я найду какие-либо недопустимые элементы во время поиска, я хотел бы удалить их из вектора.
В принципе, я хочу сделать что-то вроде этого:
for (auto el : vec) {
if (el == whatImLookingFor) {
return el;
} else if (isInvalid(el)) {
vec.erase(el);
}
}
Я посмотрел на некоторые другие вопросы, как это и это, но оба рекомендуют использовать std::remove_if
. Это приведет к переходу по всему вектору и удалению всех недопустимых элементов вместо повторения только до тех пор, пока я не найду элемент, который я ищу, и игнорирую любые элементы после этого.
Что было бы хорошим способом сделать это?