I'm trying to filter a vector so it contains only a specific value.
e.g. Make sure the vector only contains elements of the value "abc."
Right now, I'm trying to achieve this with remove_copy_if.
Is there any way to pass an additional parameter to a predicate when using one of std's algorithms?
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); I'm hoping to pass the following function as a predicate but it seems more likely that this would just end up comparing the current value being examined by remove_copy_if and the next.
bool is_invalid(const std::string &str, const std::string &wanted) { return str.compare(wanted) != 0; } I have a feeling I'm probably approaching this wrong so any suggestions would be appreciated!
Thanks