在C++中,我们可以使用remove_if函数根据一个操作元素的谓词,在线性时间内从向量中移除元素。
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(), ???);