Идиоматический способ сделать это, как сказал Джалф. Вы можете создать свою собственную функцию, чтобы сделать это проще:
template<typename T, typename Pred> void erase_if(T &vec, Pred pred)
{
vec.erase(std::remove_if(vec.begin(), vec.end(), pred), vec.end());
}
Так что вы можете использовать
std::vector<int> myVec;
// (...) fill the vector. (...)
erase_if(myVec, myPred);