Я пытаюсь отфильтровать вектор, поэтому он содержит только определенное значение.
например. Убедитесь, что вектор содержит только элементы значения "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;
}
У меня такое чувство, что я, вероятно, подхожу к этому, поэтому любые предложения будут оценены!
Спасибо