удалить элементы из вектора
Задача состоит в следующем: нахожу 2 нужных мне элемента в векторе и удаляю, но что-то не все так просто оказалось.
auto it = std::find(v.begin(), v.end(), pairs[i][0]);
auto pos = it - v.begin();
auto iter = std::find(v.begin(), v.end(), pairs[i][1]);
auto pos1 = iter - v.begin();
Вычислил позицию нужных мне элементов, а затем стираю их из вектора:
v.erase(v.begin() + pos);
v.erase(v.begin() + pos1);
v.resize(std::distance(v.begin(), v.end()));
При этом выхожу бывает за пределы вектора, так как после удаления элемента, меняется размер вектора, если я не ошибаюсь. Как решить эту проблему? Вычислять позицию второго элемента после того как удалю первый - не вариант.