STL --> find()和find_if()

find()和find_if()

 

一、find()函数

find(first, end, value);   //

返回区间[first,end)中第一个值等于value的元素的位置。如果没有找到匹配元素,则返回end。

用法:

vector<int> v{0, 1, 2, 3, 4};
auto pos = find(v.begin(v), v.end(), 3);  // vector<int>::iterator pos; 
if (pos != std::end(v))   
   cout << "v contains: " << n1 ; //v contains: 3

函数原型:

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;
}

二、find_if()函数

find_if (begin, end, func)  //

从begin开始 ,到end为止,返回第一个让 func这个函数返回true的iterator。

函数原型:

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;
}
原文地址:https://www.cnblogs.com/jeakeven/p/5017007.html