我有代码
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
等等,这些都没有奏效.有任何想法吗?
v.erase(remove_if(v.begin(),v.end(),std::not1(bool_checker)),v.end());
Run Code Online (Sandbox Code Playgroud)