Chinaunix
标题:
STL的algorithm有没有类似for_all/filter的算法
[打印本页]
作者:
cdsfiui
时间:
2016-08-06 11:35
标题:
STL的algorithm有没有类似for_all/filter的算法
例如,给定一个数组,判断是否每一个值都是正数,有没有类似for_all的算法,可以接受一个数组和一个[]{ int i } {return i > 0; }
再如,给定一个数组,把所有都是正数的元素拿出来,放到另一个新的容器。
我知道for_each,我想要的是类似find_if这样的,返回一个bool类型的函数。
什么算法呢,谢谢。
作者:
bruceteen
时间:
2016-08-06 11:35
没有小于等于0的数,那就都是正数
if( find_if( begin(arr), end(arr), [](int v){return v<=0;} ) == end(arr) )
{
// 都是正数
}
复制代码
第二个问题
copy_if( begin(src), end(src), begin(dst), [](int v){return v>0;} );
复制代码
作者:
windoze
时间:
2016-08-06 15:53
自己写不也就一句话么:
for_each(input.begin(), input.end(), [&](int n){ if(n>=0) output.push_back(n); });
复制代码
作者:
folklore
时间:
2016-08-06 16:35
回复
2#
windoze
现在已经支持
for(auto &rItem: vector){
xxx;yyy;
}
复制代码
了吧
作者:
VIP_fuck
时间:
2016-08-08 08:46
lambda 一句代码就够了
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2