template<class ForwardIterator1, class ForwardIterator2>
ForwardIterator1
search(ForwardIterator1 first1, ForwardIterator1 last1,
ForwardIterator2 first2, ForwardIterator2 last2);
template<class ExecutionPolicy, class ForwardIterator1, class ForwardIterator2>
ForwardIterator1
search(ExecutionPolicy&& exec,
ForwardIterator1 first1, ForwardIterator1 last1,
ForwardIterator2 first2, ForwardIterator2 last2);
template<class ForwardIterator1, class ForwardIterator2,
class BinaryPredicate>
ForwardIterator1
search(ForwardIterator1 first1, ForwardIterator1 last1,
ForwardIterator2 first2, ForwardIterator2 last2,
BinaryPredicate pred);
template<class ExecutionPolicy, class ForwardIterator1, class ForwardIterator2,
class BinaryPredicate>
ForwardIterator1
search(ExecutionPolicy&& exec,
ForwardIterator1 first1, ForwardIterator1 last1,
ForwardIterator2 first2, ForwardIterator2 last2,
BinaryPredicate pred);
Effects:
Finds a subsequence of equal values in a sequence
. Returns:
The first iterator
i
in the range
[first1, last1 - (last2-first2))
such that for every non-negative integer
n
less than
last2 - first2
the following corresponding conditions hold:
*(i + n) == *(first2 + n), pred(*(i + n), *(first2 + n)) != false. Returns
first1
if
[first2, last2) is empty,
otherwise returns
last1
if no such iterator is found
.Complexity:
At most
(last1 - first1) * (last2 - first2)
applications of the corresponding predicate
. template<class ForwardIterator, class Size, class T>
ForwardIterator
search_n(ForwardIterator first, ForwardIterator last, Size count,
const T& value);
template<class ForwardIterator, class Size, class T,
class BinaryPredicate>
ForwardIterator
search_n(ForwardIterator first, ForwardIterator last, Size count,
const T& value, BinaryPredicate pred);
template<class ExecutionPolicy, class ForwardIterator, class Size, class T>
ForwardIterator
search_n(ExecutionPolicy&& exec,
ForwardIterator first, ForwardIterator last,
Size count, const T& value);
template<class ExecutionPolicy, class ForwardIterator, class Size, class T,
class BinaryPredicate>
ForwardIterator
search_n(ExecutionPolicy&& exec,
ForwardIterator first, ForwardIterator last,
Size count, const T& value,
BinaryPredicate pred);
Effects:
Finds a subsequence of equal values in a sequence
. Returns:
The first iterator
i
in the range
[first, last-count)
such that for every non-negative integer
n
less than
count
the following corresponding conditions hold:
*(i + n) == value, pred(*(i + n),value) != false. Returns
last
if no such iterator is found
.Complexity:
At most
last - first
applications of the corresponding predicate
. template<class ForwardIterator, class Searcher>
ForwardIterator search(ForwardIterator first, ForwardIterator last,
const Searcher& searcher);
Effects:
Equivalent to: return searcher(first, last).first;
Remarks:
Searcher need not meet the
CopyConstructible requirements
.