Eliminar por índice de un vector C ++ usando remove_if
Podemos usar remove_if en C ++ para eliminar elementos de un vector en tiempo lineal basado en un predicado que opera en los elementos.
bool condition(double d) {...}
vector<double> data = ...
std::remove_if (data.begin(), data.end(), condition);
¿Qué pasa si mi condición no depende de los valores, sino de los índices? En otras palabras, si quisiera eliminar todos los elementos indexados impares, o algún conjunto de índices arbitrarios, etc.
bool condition(int index) {//returns whether this index should be removed}
vector<double> data = ...
std::remove_if (data.begin(), data.end(), ???);