remove_if,获得相反的bool c ++

Mdj*_*n26 0 c++ stl vector

我有代码

vector <int> v;

v.erase(remove_if(v.begin(),v.end(),bool_checker),v.end());
Run Code Online (Sandbox Code Playgroud)

其中v是保持随机数的向量{2, 4 ,5, 6, 7, 11}bool_checker是一个类对象,其值的数量是否是素数或不

我想删除不是素数的数字.换句话说,我想v看起来像{5, 7, 11}.现在v.erase()正在删除不是素数.所以输出是{2, 4, 6}.

我无法让编译器接受不是bool_checker.我试过了(!bool_checker),bool_checker==false等等,这些都没有奏效.有任何想法吗?

Nei*_*irk 9

v.erase(remove_if(v.begin(),v.end(),std::not1(bool_checker)),v.end());
Run Code Online (Sandbox Code Playgroud)