STL none_of函数

STL none_of函数算法

STL 的 algorithm 头文件中定义了 3 种算法,用来检查在算法应用到序列中的元素上时,什么时候使谓词返回 true。none_of() 算法会返回 true,前提是序列中没有元素可以使谓词返回 true。

STL none_of函数详解

头文件

#include <algorithm>

语法

template <class InputIterator, class UnaryPredicate> bool none_of (InputIterator first, InputIterator last, UnaryPredicate pred);

参数

参数 描述
first 输入迭代器
last 输入迭代器
pred 自定义比较规则

说明

first, last 标示序列范围的输入迭代器。包括 first 指向的元素,但不包括 last。

pred 一个接受一个元素类型参数并返回一个 bool 值的一元函数。可以是一个指针或者函数对象。

技术细节

该函数是当范围内的元素均不满足 pred 时,返回 true,否则返回 false.

案例

STL none_of函数

使用 STL none_of 函数判断集合

#include <iostream> #include <algorithm> #include <vector> using namespace std; bool isGreat(int i) { if(i >= 5) { return true; } else { return false; } } int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; vector<int> vi{1, 3, 5, 7}; if(none_of(vi.begin(), vi.end(), [](int n){return n%2==0;})) { cout << "all %2 != false" << endl; } }

我们在 Linux 下使用 g++ 进行编译,具体命令如下:

g++ none_of.cpp -std=c++11

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

30_STL none_of函数.png

none_of 函数会判断所有的元素只有所有元素都不符合要求,才会返回 true。

STL none_of函数总结

在 STL 的 algorithm 头文件中定义了 3 种算法,用来检查在算法应用到序列中的元素上时,什么时候使谓词返回 true。none_of() 算法会返回 true,前提是序列中没有元素可以使谓词返回 true。