STL<Algorithm>C++代码实现与解释——all_of

STL算法all_of的C++代码实现与解释

模板定义

template<class InputIterator, class UnaryPredicate>
  	bool all_of (InputIterator first, InputIterator last, UnaryPredicate pred)
{
 	while (first!=last)
	{
  		if (!pred(*first)) return false;		//pred返回false,算法返回false
   		++first;
 	}
 	 return true;
}

含义解释

class InputIterator: 表示输入的迭代器的类型。
class UnaryPredicate: 表示返回值为bool类型的一元(即只有一个形参)的函数或者仿函数(或者称之为谓词)。
first: 起始迭代器。
last: 终止迭代器。
算法解释: 对在[first, last)的迭代器之间的所有元素执行一元谓词pred(通俗地讲,就是把first和end之间的所有元素都作为实参,放到谓词pred对应的函数或仿函数中执行一次),若所有谓词执行后均返回真,则all_of返回真,否则返回假。
算法效果: 判断[first, last)中的元素是否全部满足谓词pred的条件。

案例

void main()
{
	std::array<int,8> foo = {3,5,7,11,13,17,19,23};
 	if ( std::all_of(foo.begin(), foo.end(), [](int i){return i%2;}) )
    	std::cout << "All the elements are odd numbers.\n";
}

案例解释: 判断数组foo中的元素是否全是奇数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值