stl::find,find_if,find_if_not

//满足特定条件下的实现,回调函数
template<class InputIt, class UnaryPredicate> InputIt find_if(InputIt first, InputIt last, UnaryPredicate p) { for (; first != last; ++first) { if (p(*first)) { return first; } } return last; }

 

template<class InputIt, class T>

InputIt find(InputIt first, InputIt last, const T& value)

{

    for (; first != last; ++first) {

        if (*first == value) {

            return first;

        }

    }

    return last;

}



//lingyizhong

template<class InputIt,class T>

InputIt find(InputIt first,Inputit last,const T& value)

{

    for(;first!=last&&*first==value;first++)

               return first;

}



template<class InputIt, class UnaryPredicate>

InputIt find_if_not(InputIt first, InputIt last, UnaryPredicate q)

{

    for (; first != last; ++first) {

        if (!q(*first)) {

            return first;

        }

    }

    return last;

}

 

 

 

你可能感兴趣的:(find)