我正在尝试过滤向量,使其仅包含特定值。
例如,确保向量只包含值为“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);
我希望将以下函数作为谓词传递,但似乎更有可能最终将当前值remove_copy_if
与下一个值进行比较。
bool is_invalid(const std::string &str, const std::string &wanted)
{
return str.compare(wanted) != 0;
}
我有一种感觉,我可能正在接近这个错误,所以任何建议将不胜感激!
谢谢