Удаление по индексу из вектора C ++ с использованием remove_if
Мы можем использовать remove_if в C ++ для удаления элементов из вектора за линейное время на основе предиката, который работает с элементами.
bool condition(double d) {...}
vector<double> data = ...
std::remove_if (data.begin(), data.end(), condition);
Что если мое состояние зависит не от значений, а от показателей? Другими словами, если я хотел удалить все элементы с нечетным индексом или какой-то произвольный набор индексов и т. Д.?
bool condition(int index) {//returns whether this index should be removed}
vector<double> data = ...
std::remove_if (data.begin(), data.end(), ???);