我有以下removeOneParam(Parameter* param)
代码来自answer:
class A
{
private:
std::vector<Parameter*> params;
public:
void removeOneParam(Parameter* param)
{
params.erase(std::remove(params.begin(), params.end(), param), params.end());
}
}
但是我得到以下编译错误:
error: cannot convert ‘std::vector<Parameter*>::iterator {aka __gnu_cxx::__normal_iterator<Parameter**, std::vector<Parameter*> >}’ to ‘const char*’ for argument ‘1’ to ‘int remove(const char*)
我如何将这个答案用于我的案例?
答案 0 :(得分:2)
您的编译器在std::remove
标题中选择了cstdio
的版本,而不是您想要的版本。您可能遗漏了#include <algorithm>
。
答案 1 :(得分:1)
在我看来,标题algorithm
不包括在内。尝试
#include <algorithm>
然后一切都应该正常。
答案 2 :(得分:0)
尝试在程序的顶部添加include <algorithm>
这应该会使错误消失。