一:find()函数
函数原型:
template<class _InIt,
class _Ty>
_NODISCARD inline _InIt find(_InIt _First, const _InIt _Last, const _Ty& _Val)
{ // find first matching _Val
_DEBUG_RANGE(_First, _Last);//???
return (_Rechecked(_First,
_Find_unchecked(_Unchecked(_First), _Unchecked(_Last), _Val)));
}
函数返回值:是一个迭代器(底层是指针)。
函数实现:
//最底层的实现
template<class _InIt,
class _Ty> inline
_InIt _Find_unchecked1(_InIt _First, const _InIt _Last, const _Ty& _Val, false_type)
{ // find first matching _Val
for (; _First != _Last; ++_First)
if (*_First == _Val)
break;
return (_First);
}
函数作用:返回区间_First 到 _Last,中第一个值等于_Val,的位置,如果没找到返回end。
函数使用:
auto it = find(vc.begin(), vc.end(), 34);
二:find_if()函数
函数原型及实现: