gpt4 book ai didi

c++ - remove_if 的一元谓词可以有副作用吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:02:47 25 4
gpt4 key购买 nike

如果那些没有修改容器?例如,我想输出我从 vector 中删除的所有整数(我不想使用多次传递:例如:partition + output + erase)。撇开设计恐怖不谈,这是合法的:

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());

AFAIK 标准保证在每个元素上只应用一次谓词,所以我很好,因为我不关心顺序......

最佳答案

标准确实保证了这一点,所以你没问题。不过,除了调试之外,我仍然认为它是糟糕的风格。

关于c++ - remove_if 的一元谓词可以有副作用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21553503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com