C++ 算法 any_of()函数
C++算法 any_of() 函数在范围内的每个元素上测试 ‘pred’ 的值,如果对于任何一个元素,pred 的值为 true,则函数返回 true,否则返回 false。
语法
template <class InputIteratir, class UnaryPredicate>
bool any_of (InputIterator first, InputIterator last, UnaryPredicate pred);
参数
first :它是指定范围中的第一个元素。
last :它是指定范围中的最后一个元素。
pred :它是一个接受来自范围的参数的一元函数。
返回值
该函数有一个返回类型,为”true”。如果参数”pred”对于范围中的任意一个元素的值为true,则返回值为”true”,否则为false。
示例1
#include <iostream>
#include <algorithm>
#include <array>
using namespace std;
int main()
{
int arr[7] = {2,4,6,5,10,3,14};
any_of(arr,arr+6, [](int k){return k%2;})?
cout <<"There are elements which exist in the table of 2":
cout<<"No elements in the table of 2 exists";
return 0;
}
输出:
There are elements which exist in the table of 2.
示例2
#include <iostream>
#include <algorithm>
#include <array>
int main()
{
std::array<int, 5> arr = {2,-4,6,-9,10};
if(std::any_of (arr.begin(), arr.end(), [](int k) { return k<0;}))
std::cout <<"Negative elements exist in the array";
return 0;
}
输出:
Negative elements exist in the array
复杂性
该函数以线性方式移动,从第一个元素开始向最后一个元素移动。对于列表的每个元素,都会检查 ‘pred’ 的值。搜索会一直进行,直到遇到 ‘pred’ 值的不匹配。
数据竞争
该函数要么访问指定范围内的所有对象,要么访问其中一些对象。
异常
如果任何一个参数抛出异常,该函数会抛出异常。