如果这些都不是修改容器的选项呢?比如我想输出我从向量中删除的所有整数(我不想使用多个步骤:例如分区+输出+删除)。撇开设计上的不良之处,这合法吗?
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());
据我所知,标准保证对每个元素只应用一次谓词,所以我很满意,因为我不关心顺序...