vector<int>::iterator it=find(vec.begin(),vec.end(),1);
if(it != vec.end())
cout<<"found"<<endl;
else
cout<<"not found"<<endl;
对于if!=vec.end(),就是找到了这是为什么呢?
end()并不是最后一个元素,最后一个元素在end()-1里。
!=vec.end(),说明还没走到末尾就找到这个元素,如果=vec.end(),则说明到了
末尾还没有找到,如果找到的话,那么这个it的位置表示第一次出现1的位置
一下find函数的源代码
template <class _InputIterator, class _Tp>
inline _LIBCPP_INLINE_VISIBILITY
_InputIterator
find(_InputIterator __first, _InputIterator __last, const _Tp& __value_)
{
for (; __first != __last; ++__first)
if (*__first == __value_)
break;
return __first;
}