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

C++ Remove element from vector by value

本文关键字:元素 向量 C++      更新时间:2023-10-16

我环顾四周,在我看来,这个问题的一致答案是这个方法;

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。为什么它会给我这个错误?

std::remove仅在包含标头<algorithm>时可用。

这里的MSDN文档以及任何C++参考资料都清楚地说明了这一点。