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

C++ C++;按值从向量中删除元素,c++,vector,C++,Vector,我环顾四周,在我看来,这个问题的一致答案是这个方法 template <typename T> void removeByValue(vector<T> & vec, const T & val) { vec.erase(std::remove(vec.begin(), vec.end(), val), vec.end()); } 模板 void removeByValue(向量和向量、常量和值) { vec.erase(std::remove(

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

template <typename T>
void removeByValue(vector<T> & vec, const T & val)
{
    vec.erase(std::remove(vec.begin(), vec.end(), val), vec.end());
}
模板
void removeByValue(向量和向量、常量和值)
{
vec.erase(std::remove(vec.begin()、vec.end()、val)、vec.end());
}

然而,我得到了一个错误,错误是:'remove':当试图编译它时,函数不接受3个参数。为什么它给了我这个错误?< /P> < P> <代码> STD::删除< /COD>只有在包含头>代码>以及任何C++引用时才可用。

我使用VisualStudio2013可能的感谢副本!为什么其他的答案都不提这一点?@ Maurdekye:因为查看任何内置函数的文档来找出需要什么标题是最基本的,大多数C++程序员从不认为学生可能还没有学会它。它给我的错误不是没有定义,而是定义了。但是有不同数量的论点。所以它很容易被误认为是一种标准方法。@Maurdekye:现在修好了吗?是的,修好了。但我不能再等7分钟再给你打分了。