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