Удаление по индексу из вектора 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(), ???);