C++ remove_的一元谓词是否有副作用?
如果这些没有修改容器? 例如,我想输出我要从向量中删除的所有整数(我不想使用多个过程:例如:分区+输出+擦除)。 撇开设计的不好不谈,这是否合法:C++ remove_的一元谓词是否有副作用?,c++,stl,C++,Stl,如果这些没有修改容器? 例如,我想输出我要从向量中删除的所有整数(我不想使用多个过程:例如:分区+输出+擦除)。 撇开设计的不好不谈,这是否合法: v.erase(remove_if(v.begin(), v.end(), [] (const int i) -> bool { if (i%2==0)
v.erase(remove_if(v.begin(), v.end(), [] (const int i) -> bool
{
if (i%2==0)
{
cout << i << endl;
return true;
}
else return false;
}, v.end());
v.erase(如果(v.begin(),v.end(),[](const int i)删除)->bool
{
如果(i%2==0)
{
CUT< P>标准确实保证了,所以你很好。但是我仍然认为它是坏的风格,除了调试。虽然< /P>我和一个C的粉丝争论过,所以你知道这是怎么回事……就像我说的,我会在实际代码中使用分区+ CUT+擦除……从某种意义上说,这只是一个性能问题:如果你认为分区+分区+擦除不好,请说我可以编辑QNo,分区,然后在擦除之前结束分区,这正是我要做的。