find_if_not 源码剖析
来源:互联网 发布:维珍澳航 知乎 编辑:程序博客网 时间:2024/06/10 04:23
一:用法解析
函数原型:template <class InputIterator, class UnaryPredicate>
InputIterator find_if_not (InputIterator first, InputIterator last, UnaryPredicate pred);
功能:
和find_if的功能相反,在区间[ first , last )内,返回第一个使pred()为假的迭代器;若不存在这样的元素,返回last。
例子:
// find_if_not example#include <iostream> // std::cout#include <algorithm> // std::find_if_not#include <array> // std::arrayint main () { std::array<int,5> foo = {1,2,3,4,5}; std::array<int,5>::iterator it = std::find_if_not (foo.begin(), foo.end(), [](int i){return i%2;} ); std::cout << "The first even value is " << *it << '\n'; return 0;}运行如下:
The first even value is 2
二:源码解析
// TEMPLATE FUNCTION find_if_nottemplate<class _InIt,class _Pr> inline_InIt _Find_if_not(_InIt _First, _InIt _Last, _Pr _Pred){// find first element that satisfies !_Predfor (; _First != _Last; ++_First)if (!_Pred(*_First))break;return (_First);}template<class _InIt,class _Pr> inline_InIt find_if_not(_InIt _First, _InIt _Last, _Pr _Pred){// find first element that satisfies !_Pred_DEBUG_RANGE_PTR(_First, _Last, _Pred);return (_Rechecked(_First,_Find_if_not(_Unchecked(_First), _Unchecked(_Last), _Pred)));}
源码摘抄自Visual Studio 2015安装目录algorithm文件中。
点击进入目录----> C++源码剖析目录
1 0
- find_if_not 源码剖析
- std::find_if_not
- 《stl源码剖析》剖析
- std::find_if_not的使用
- 【源码】ArrayList源码剖析
- 【源码】LinkedList源码剖析
- 【源码】HashMap源码剖析
- 【源码】HashMap源码剖析
- 【源码】Hashtable源码剖析
- 【源码】LinkedHashMap源码剖析
- 【源码】LruCache源码剖析
- 【源码】TreeMap源码剖析
- 【源码】LinkedHashMap源码剖析
- 【源码】LruCache源码剖析
- 【源码】Hashtable源码剖析
- 【Java集合源码剖析】ArrayList源码剖析
- 【Java集合源码剖析】LinkedList源码剖析
- 【Java集合源码剖析】Vector源码剖析
- 1050. 螺旋矩阵(25)-PAT乙级真题
- 常用JS键盘鼠标事件
- HDU:3665 Seaside(dijkstra算法求最短路径)
- 分拆素数和
- POJ 3268Silver Cow Party
- find_if_not 源码剖析
- 神经网络:学习(2)
- spring (2.5, 3.2) 在 jre 1.8下的fix
- LinkedList的源码分析
- Kafka集群搭建02-Kafka 集群部署
- 数学 ( 容斥原理&&求区间内互质数的个数)——Co-prime ( HDU 4135 )
- listview添加footerview的注意事项
- poj 2488 A Knight's Journey
- 树莓派与电脑之间文件传输