Entfernen nach Index aus einem C ++ - Vektor mit remove_if

Wir können remove_if in C ++ verwenden, um Elemente in linearer Zeit aus einem Vektor zu entfernen, basierend auf einem Prädikat, das auf die Elemente angewendet wird.

bool condition(double d) {...}

vector<double> data = ...
std::remove_if (data.begin(), data.end(), condition);

Was ist, wenn mein Zustand nicht von den Werten abhängt, sondern von den Indizes? Mit anderen Worten, wenn ich alle ungeraden Indexelemente oder einen beliebigen Indexsatz usw. entfernen wollte?

bool condition(int index) {//returns whether this index should be removed}

vector<double> data = ...
std::remove_if (data.begin(), data.end(), ???);

Antworten auf die Frage(3)

Ihre Antwort auf die Frage