我正在尝试过滤矢量,因此它只包含一个特定的值.
例如,确保向量仅包含值"abc"的元素.
现在,我正在努力实现这一目标remove_copy_if.
有没有办法在使用std算法之一时将附加参数传递给谓词?
std::vector<std::string> first, second;
first.push_back("abc");
first.push_back("abc");
first.push_back("def");
first.push_back("abd");
first.push_back("cde");
first.push_back("def");
std::remove_copy_if(first.begin(), first.end(), second.begin(), is_invalid);
Run Code Online (Sandbox Code Playgroud)
我希望将以下函数作为谓词传递,但似乎更有可能最终将比较正在检查的当前值remove_copy_if和下一个.
bool is_invalid(const std::string &str, const std::string &wanted)
{
return str.compare(wanted) != 0;
}
Run Code Online (Sandbox Code Playgroud)
我有一种感觉,我可能正在接近这个错误所以任何建议将不胜感激!
谢谢