本文内容来自C++Plus,本文只是本人的总结和翻译而已。本人只是C++的搬运工。
原文传送门:http://www.cplusplus.com/reference/algorithm/none_of/
none_of 算法:没有元素符合测试条件。
如果[first,last)区间里面有元素满足 perd 条件,就返回false,或者区间是empty也会返回false。如果没有元素满足条件就返回ture,区间内的所有元素都通过测试。
template<class InputIterator, class UnaryPredicate>
bool none_of (InputIterator first, InputIterator last, UnaryPredicate pred)
{
while (first!=last) {
if (pred(*first)) return false;
++first;
}
return true;
}
下面是测试代码。
// none_of example
#include <iostream> // std::cout
#include <algorithm> // std::none_of
#include <array> // std::array
int main () {
std::array<int,8> foo = {1,2,4,8,16,32,64,128};
if ( std::none_of(foo.begin(), foo.end(), [](int i){return i<0;}) )
std::cout << "There are no negative elements in the range.\n";
return 0;
}
和all_of算法刚好相反。但是都是用来测试区间内元素值的。