C ++按值从向量中删除元素

时间:2015-02-28 03:41:59

标签: c++ vector

我环顾四周,在我看来,这个问题的共识答案就是这种方法;

template <typename T>
void removeByValue(vector<T> & vec, const T & val)
{
    vec.erase(std::remove(vec.begin(), vec.end(), val), vec.end());
}

但是,我在尝试编译时遇到错误error C2660: 'remove' : function does not take 3 arguments。为什么它会给我这个错误?

1 个答案:

答案 0 :(得分:3)

std::remove仅在您添加标题<algorithm>时才可用。

the MSDN documentation here以及任何C ++参考都清楚地说明了这一点。