all_of 源码剖析
来源:互联网 发布:sql 逐行累加 编辑:程序博客网 时间:2024/05/29 12:21
一:用法解析
函数原型:
template <class InputIterator, class UnaryPredicate>
bool all_of (InputIterator first, InputIterator last, UnaryPredicate pred);
功能:
判断[ first , last )范围内的元素是否都满足pred,若是,返回真;其他情况,返回假。
例子:
// all_of example#include <iostream> // std::cout#include <algorithm> // std::all_of#include <array> // std::arrayint 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"; return 0;}运行如下:
All the elements are odd numbers.
二:源码剖析
// TEMPLATE FUNCTION all_oftemplate<class _InIt, class _Pr> inline bool _All_of(_InIt _First, _InIt _Last, _Pr _Pred) { // test if all elements satisfy _Pred for (; _First != _Last; ++_First) if (!_Pred(*_First)) return (false); return (true); }template<class _InIt, class _Pr> inline bool all_of(_InIt _First, _InIt _Last, _Pr _Pred) { // test if all elements satisfy _Pred _DEBUG_RANGE_PTR(_First, _Last, _Pred); return (_All_of(_Unchecked(_First), _Unchecked(_Last), _Pred)); }
源码摘抄自Visual Studio 2015安装目录algorithm文件中。
点击进入目录----> C++源码剖析目录
1 0
- all_of 源码剖析
- std::all_of
- 《stl源码剖析》剖析
- Boost学习之all_of
- all_of, any_of, none_of
- 【源码】ArrayList源码剖析
- 【源码】LinkedList源码剖析
- 【源码】HashMap源码剖析
- 【源码】HashMap源码剖析
- 【源码】Hashtable源码剖析
- 【源码】LinkedHashMap源码剖析
- 【源码】LruCache源码剖析
- 【源码】TreeMap源码剖析
- 【源码】LinkedHashMap源码剖析
- 【源码】LruCache源码剖析
- 【源码】Hashtable源码剖析
- 【Java集合源码剖析】ArrayList源码剖析
- 【Java集合源码剖析】LinkedList源码剖析
- 双守护进程保护程序运行
- php联想搜索
- 【Maven用户手册】Maven仓库
- hdu 4287 Intelligent IME
- mysql 的基本命令
- all_of 源码剖析
- ContextLoaderListener作用详解
- plsql连接oracle问题
- java之集合类详解
- light oj 1257 Farthest Nodes in a Tree (II)(724训练题目)主要是利用了反证法: 假设 s-t这条路径为树的直径,或者称为树上的最长路 现有结论,从任意一点
- 【Maven用户手册】Maven之setting.xml配置文件详解
- 简单的HTML学习
- HDU-2010
- 读《What every programmer should know about memory》,小结