libstdc++
Non-Mutating
Collaboration diagram for Non-Mutating:

Functions

template<typename _ForwardIterator >
_ForwardIterator std::adjacent_find (_ForwardIterator __first, _ForwardIterator __last)
 
template<typename _ForwardIterator , typename _BinaryPredicate >
_ForwardIterator std::adjacent_find (_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __binary_pred)
 
template<typename _InputIterator , typename _Predicate >
bool std::all_of (_InputIterator __first, _InputIterator __last, _Predicate __pred)
 
template<typename _InputIterator , typename _Predicate >
bool std::any_of (_InputIterator __first, _InputIterator __last, _Predicate __pred)
 
template<typename _InputIterator , typename _Tp >
iterator_traits< _InputIterator >::difference_type std::count (_InputIterator __first, _InputIterator __last, const _Tp &__value)
 
template<typename _InputIterator , typename _Predicate >
iterator_traits< _InputIterator >::difference_type std::count_if (_InputIterator __first, _InputIterator __last, _Predicate __pred)
 
template<typename _IIter1 , typename _IIter2 , typename _BinaryPredicate >
bool std::equal (_IIter1 __first1, _IIter1 __last1, _IIter2 __first2, _BinaryPredicate __binary_pred)
 
template<typename _II1 , typename _II2 >
bool std::equal (_II1 __first1, _II1 __last1, _II2 __first2)
 
template<typename _II1 , typename _II2 >
bool std::equal (_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2)
 
template<typename _IIter1 , typename _IIter2 , typename _BinaryPredicate >
bool std::equal (_IIter1 __first1, _IIter1 __last1, _IIter2 __first2, _IIter2 __last2, _BinaryPredicate __binary_pred)
 
template<typename _InputIterator , typename _Tp >
_InputIterator std::find (_InputIterator __first, _InputIterator __last, const _Tp &__val)
 
template<typename _ForwardIterator1 , typename _ForwardIterator2 >
_ForwardIterator1 std::find_end (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2)
 
template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >
_ForwardIterator1 std::find_end (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __comp)
 
template<typename _InputIterator , typename _ForwardIterator >
_InputIterator std::find_first_of (_InputIterator __first1, _InputIterator __last1, _ForwardIterator __first2, _ForwardIterator __last2)
 
template<typename _InputIterator , typename _ForwardIterator , typename _BinaryPredicate >
_InputIterator std::find_first_of (_InputIterator __first1, _InputIterator __last1, _ForwardIterator __first2, _ForwardIterator __last2, _BinaryPredicate __comp)
 
template<typename _InputIterator , typename _Predicate >
_InputIterator std::find_if (_InputIterator __first, _InputIterator __last, _Predicate __pred)
 
template<typename _InputIterator , typename _Predicate >
_InputIterator std::find_if_not (_InputIterator __first, _InputIterator __last, _Predicate __pred)
 
template<typename _InputIterator , typename _Function >
_Function std::for_each (_InputIterator __first, _InputIterator __last, _Function __f)
 
template<typename _ForwardIterator1 , typename _ForwardIterator2 >
bool std::is_permutation (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2)
 
template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >
bool std::is_permutation (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _BinaryPredicate __pred)
 
template<typename _ForwardIterator1 , typename _ForwardIterator2 >
bool std::is_permutation (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2)
 
template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >
bool std::is_permutation (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred)
 
template<typename _InputIterator1 , typename _InputIterator2 >
pair< _InputIterator1, _InputIterator2 > std::mismatch (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2)
 
template<typename _InputIterator1 , typename _InputIterator2 , typename _BinaryPredicate >
pair< _InputIterator1, _InputIterator2 > std::mismatch (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _BinaryPredicate __binary_pred)
 
template<typename _InputIterator1 , typename _InputIterator2 >
pair< _InputIterator1, _InputIterator2 > std::mismatch (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2)
 
template<typename _InputIterator1 , typename _InputIterator2 , typename _BinaryPredicate >
pair< _InputIterator1, _InputIterator2 > std::mismatch (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _BinaryPredicate __binary_pred)
 
template<typename _InputIterator , typename _Predicate >
bool std::none_of (_InputIterator __first, _InputIterator __last, _Predicate __pred)
 
template<typename _ForwardIterator1 , typename _ForwardIterator2 >
_ForwardIterator1 std::search (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2)
 
template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >
_ForwardIterator1 std::search (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __predicate)
 
template<typename _ForwardIterator , typename _Integer , typename _Tp >
_ForwardIterator std::search_n (_ForwardIterator __first, _ForwardIterator __last, _Integer __count, const _Tp &__val)
 
template<typename _ForwardIterator , typename _Integer , typename _Tp , typename _BinaryPredicate >
_ForwardIterator std::search_n (_ForwardIterator __first, _ForwardIterator __last, _Integer __count, const _Tp &__val, _BinaryPredicate __binary_pred)
 

Detailed Description

Function Documentation

template<typename _ForwardIterator >
_ForwardIterator std::adjacent_find ( _ForwardIterator  __first,
_ForwardIterator  __last 
)
inline

Find two adjacent values in a sequence that are equal.

Parameters
__firstA forward iterator.
__lastA forward iterator.
Returns
The first iterator i such that i and i+1 are both valid iterators in [__first,__last) and such that *i == *(i+1), or __last if no such iterator exists.

Definition at line 4026 of file stl_algo.h.

template<typename _ForwardIterator , typename _BinaryPredicate >
_ForwardIterator std::adjacent_find ( _ForwardIterator  __first,
_ForwardIterator  __last,
_BinaryPredicate  __binary_pred 
)
inline

Find two adjacent values in a sequence using a predicate.

Parameters
__firstA forward iterator.
__lastA forward iterator.
__binary_predA binary predicate.
Returns
The first iterator i such that i and i+1 are both valid iterators in [__first,__last) and such that __binary_pred(*i,*(i+1)) is true, or __last if no such iterator exists.

Definition at line 4051 of file stl_algo.h.

template<typename _InputIterator , typename _Predicate >
bool std::all_of ( _InputIterator  __first,
_InputIterator  __last,
_Predicate  __pred 
)
inline

Checks that a predicate is true for all the elements of a sequence.

Parameters
__firstAn input iterator.
__lastAn input iterator.
__predA predicate.
Returns
True if the check is true, false otherwise.

Returns true if __pred is true for each element in the range [__first,__last), and false otherwise.

Definition at line 508 of file stl_algo.h.

References std::find_if_not().

template<typename _InputIterator , typename _Predicate >
bool std::any_of ( _InputIterator  __first,
_InputIterator  __last,
_Predicate  __pred 
)
inline

Checks that a predicate is false for at least an element of a sequence.

Parameters
__firstAn input iterator.
__lastAn input iterator.
__predA predicate.
Returns
True if the check is true, false otherwise.

Returns true if an element exists in the range [__first,__last) such that __pred is true, and false otherwise.

Definition at line 543 of file stl_algo.h.

References std::none_of().

template<typename _InputIterator , typename _Tp >
iterator_traits<_InputIterator>::difference_type std::count ( _InputIterator  __first,
_InputIterator  __last,
const _Tp &  __value 
)
inline

Count the number of copies of a value in a sequence.

Parameters
__firstAn input iterator.
__lastAn input iterator.
__valueThe value to be counted.
Returns
The number of iterators i in the range [__first,__last) for which *i == __value

Definition at line 4076 of file stl_algo.h.

template<typename _InputIterator , typename _Predicate >
iterator_traits<_InputIterator>::difference_type std::count_if ( _InputIterator  __first,
_InputIterator  __last,
_Predicate  __pred 
)
inline

Count the elements of a sequence for which a predicate is true.

Parameters
__firstAn input iterator.
__lastAn input iterator.
__predA predicate.
Returns
The number of iterators i in the range [__first,__last) for which __pred(*i) is true.

Definition at line 4099 of file stl_algo.h.

template<typename _IIter1 , typename _IIter2 , typename _BinaryPredicate >
bool std::equal ( _IIter1  __first1,
_IIter1  __last1,
_IIter2  __first2,
_BinaryPredicate  __binary_pred 
)
inline

Tests a range for element-wise equality.

Parameters
__first1An input iterator.
__last1An input iterator.
__first2An input iterator.
__binary_predA binary predicate functor.
Returns
A boolean true or false.

This compares the elements of two ranges using the binary_pred parameter, and returns true or false depending on whether all of the corresponding elements of the ranges are equal.

Definition at line 1073 of file stl_algobase.h.

template<typename _II1 , typename _II2 >
bool std::equal ( _II1  __first1,
_II1  __last1,
_II2  __first2 
)
inline

Tests a range for element-wise equality.

Parameters
__first1An input iterator.
__last1An input iterator.
__first2An input iterator.
Returns
A boolean true or false.

This compares the elements of two ranges using == and returns true or false depending on whether all of the corresponding elements of the ranges are equal.

Definition at line 1041 of file stl_algobase.h.

template<typename _II1 , typename _II2 >
bool std::equal ( _II1  __first1,
_II1  __last1,
_II2  __first2,
_II2  __last2 
)
inline

Tests a range for element-wise equality.

Parameters
__first1An input iterator.
__last1An input iterator.
__first2An input iterator.
__last2An input iterator.
Returns
A boolean true or false.

This compares the elements of two ranges using == and returns true or false depending on whether all of the corresponding elements of the ranges are equal.

Definition at line 1106 of file stl_algobase.h.

References std::distance(), and std::equal().

template<typename _IIter1 , typename _IIter2 , typename _BinaryPredicate >
bool std::equal ( _IIter1  __first1,
_IIter1  __last1,
_IIter2  __first2,
_IIter2  __last2,
_BinaryPredicate  __binary_pred 
)
inline

Tests a range for element-wise equality.

Parameters
__first1An input iterator.
__last1An input iterator.
__first2An input iterator.
__last2An input iterator.
__binary_predA binary predicate functor.
Returns
A boolean true or false.

This compares the elements of two ranges using the binary_pred parameter, and returns true or false depending on whether all of the corresponding elements of the ranges are equal.

Definition at line 1155 of file stl_algobase.h.

References std::distance().

Referenced by std::equal(), std::fill_n(), and std::operator==().

template<typename _InputIterator , typename _Tp >
_InputIterator std::find ( _InputIterator  __first,
_InputIterator  __last,
const _Tp &  __val 
)
inline

Find the first occurrence of a value in a sequence.

Parameters
__firstAn input iterator.
__lastAn input iterator.
__valThe value to find.
Returns
The first iterator i in the range [__first,__last) such that *i == __val, or __last if no such iterator exists.

Definition at line 3899 of file stl_algo.h.

References std::__find_if().

template<typename _ForwardIterator1 , typename _ForwardIterator2 >
_ForwardIterator1 std::find_end ( _ForwardIterator1  __first1,
_ForwardIterator1  __last1,
_ForwardIterator2  __first2,
_ForwardIterator2  __last2 
)
inline

Find last matching subsequence in a sequence.

Parameters
__first1Start of range to search.
__last1End of range to search.
__first2Start of sequence to match.
__last2End of sequence to match.
Returns
The last iterator i in the range [__first1,__last1-(__last2-__first2)) such that *(i+N) == *(__first2+N) for each N in the range [0,__last2-__first2), or __last1 if no such iterator exists.

Searches the range [__first1,__last1) for a sub-sequence that compares equal value-by-value with the sequence given by [__first2,__last2) and returns an iterator to the __first element of the sub-sequence, or __last1 if the sub-sequence is not found. The sub-sequence will be the last such subsequence contained in [__first1,__last1).

Because the sub-sequence must lie completely within the range [__first1,__last1) it must start at a position less than __last1-(__last2-__first2) where __last2-__first2 is the length of the sub-sequence. This means that the returned iterator i will be in the range [__first1,__last1-(__last2-__first2))

Definition at line 425 of file stl_algo.h.

References std::__iterator_category().

template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >
_ForwardIterator1 std::find_end ( _ForwardIterator1  __first1,
_ForwardIterator1  __last1,
_ForwardIterator2  __first2,
_ForwardIterator2  __last2,
_BinaryPredicate  __comp 
)
inline

Find last matching subsequence in a sequence using a predicate.

Parameters
__first1Start of range to search.
__last1End of range to search.
__first2Start of sequence to match.
__last2End of sequence to match.
__compThe predicate to use.
Returns
The last iterator i in the range [__first1,__last1-(__last2-__first2)) such that predicate(*(i+N), (__first2+N)) is true for each N in the range [0,__last2-__first2), or __last1 if no such iterator exists.

Searches the range [__first1,__last1) for a sub-sequence that compares equal value-by-value with the sequence given by [__first2,__last2) using comp as a predicate and returns an iterator to the first element of the sub-sequence, or __last1 if the sub-sequence is not found. The sub-sequence will be the last such subsequence contained in [__first,__last1).

Because the sub-sequence must lie completely within the range [__first1,__last1) it must start at a position less than __last1-(__last2-__first2) where __last2-__first2 is the length of the sub-sequence. This means that the returned iterator i will be in the range [__first1,__last1-(__last2-__first2))

Definition at line 474 of file stl_algo.h.

References std::__iterator_category().

template<typename _InputIterator , typename _ForwardIterator >
_InputIterator std::find_first_of ( _InputIterator  __first1,
_InputIterator  __last1,
_ForwardIterator  __first2,
_ForwardIterator  __last2 
)

Find element from a set in a sequence.

Parameters
__first1Start of range to search.
__last1End of range to search.
__first2Start of match candidates.
__last2End of match candidates.
Returns
The first iterator i in the range [__first1,__last1) such that *i == *(i2) such that i2 is an iterator in [__first2,__last2), or __last1 if no such iterator exists.

Searches the range [__first1,__last1) for an element that is equal to some element in the range [__first2,__last2). If found, returns an iterator in the range [__first1,__last1), otherwise returns __last1.

Definition at line 3954 of file stl_algo.h.

template<typename _InputIterator , typename _ForwardIterator , typename _BinaryPredicate >
_InputIterator std::find_first_of ( _InputIterator  __first1,
_InputIterator  __last1,
_ForwardIterator  __first2,
_ForwardIterator  __last2,
_BinaryPredicate  __comp 
)

Find element from a set in a sequence using a predicate.

Parameters
__first1Start of range to search.
__last1End of range to search.
__first2Start of match candidates.
__last2End of match candidates.
__compPredicate to use.
Returns
The first iterator i in the range [__first1,__last1) such that comp(*i, *(i2)) is true and i2 is an iterator in [__first2,__last2), or __last1 if no such iterator exists.

Searches the range [__first1,__last1) for an element that is equal to some element in the range [__first2,__last2). If found, returns an iterator in the range [__first1,__last1), otherwise returns __last1.

Definition at line 3995 of file stl_algo.h.

template<typename _InputIterator , typename _Predicate >
_InputIterator std::find_if ( _InputIterator  __first,
_InputIterator  __last,
_Predicate  __pred 
)
inline

Find the first element in a sequence for which a predicate is true.

Parameters
__firstAn input iterator.
__lastAn input iterator.
__predA predicate.
Returns
The first iterator i in the range [__first,__last) such that __pred(*i) is true, or __last if no such iterator exists.

Definition at line 3923 of file stl_algo.h.

References std::__find_if().

Referenced by std::none_of().

template<typename _InputIterator , typename _Predicate >
_InputIterator std::find_if_not ( _InputIterator  __first,
_InputIterator  __last,
_Predicate  __pred 
)
inline

Find the first element in a sequence for which a predicate is false.

Parameters
__firstAn input iterator.
__lastAn input iterator.
__predA predicate.
Returns
The first iterator i in the range [__first,__last) such that __pred(*i) is false, or __last if no such iterator exists.

Definition at line 558 of file stl_algo.h.

References std::__find_if_not().

Referenced by std::all_of(), and std::is_partitioned().

template<typename _InputIterator , typename _Function >
_Function std::for_each ( _InputIterator  __first,
_InputIterator  __last,
_Function  __f 
)

Apply a function to every element of a sequence.

Parameters
__firstAn input iterator.
__lastAn input iterator.
__fA unary function object.
Returns
__f

Applies the function object __f to each element in the range [first,last). __f must not modify the order of the sequence. If __f has a return value it is ignored.

Definition at line 3878 of file stl_algo.h.

template<typename _ForwardIterator1 , typename _ForwardIterator2 >
bool std::is_permutation ( _ForwardIterator1  __first1,
_ForwardIterator1  __last1,
_ForwardIterator2  __first2 
)
inline

Checks whether a permutation of the second sequence is equal to the first sequence.

Parameters
__first1Start of first range.
__last1End of first range.
__first2Start of second range.
Returns
true if there exists a permutation of the elements in the range [__first2, __first2 + (__last1 - __first1)), beginning with ForwardIterator2 begin, such that equal(__first1, __last1, begin) returns true; otherwise, returns false.

Definition at line 3542 of file stl_algo.h.

template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >
bool std::is_permutation ( _ForwardIterator1  __first1,
_ForwardIterator1  __last1,
_ForwardIterator2  __first2,
_BinaryPredicate  __pred 
)
inline

Checks whether a permutation of the second sequence is equal to the first sequence.

Parameters
__first1Start of first range.
__last1End of first range.
__first2Start of second range.
__predA binary predicate.
Returns
true if there exists a permutation of the elements in the range [__first2, __first2 + (__last1 - __first1)), beginning with ForwardIterator2 begin, such that equal(__first1, __last1, __begin, __pred) returns true; otherwise, returns false.

Definition at line 3574 of file stl_algo.h.

References std::__find_if(), and std::distance().

template<typename _ForwardIterator1 , typename _ForwardIterator2 >
bool std::is_permutation ( _ForwardIterator1  __first1,
_ForwardIterator1  __last1,
_ForwardIterator2  __first2,
_ForwardIterator2  __last2 
)
inline

Checks whether a permutaion of the second sequence is equal to the first sequence.

Parameters
__first1Start of first range.
__last1End of first range.
__first2Start of second range.
__last2End of first range.
Returns
true if there exists a permutation of the elements in the range [__first2, __last2), beginning with ForwardIterator2 begin, such that equal(__first1, __last1, begin) returns true; otherwise, returns false.

Definition at line 3666 of file stl_algo.h.

template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >
bool std::is_permutation ( _ForwardIterator1  __first1,
_ForwardIterator1  __last1,
_ForwardIterator2  __first2,
_ForwardIterator2  __last2,
_BinaryPredicate  __pred 
)
inline

Checks whether a permutation of the second sequence is equal to the first sequence.

Parameters
__first1Start of first range.
__last1End of first range.
__first2Start of second range.
__last2End of first range.
__predA binary predicate.
Returns
true if there exists a permutation of the elements in the range [__first2, __last2), beginning with ForwardIterator2 begin, such that equal(__first1, __last1, __begin, __pred) returns true; otherwise, returns false.

Definition at line 3694 of file stl_algo.h.

template<typename _InputIterator1 , typename _InputIterator2 >
pair<_InputIterator1, _InputIterator2> std::mismatch ( _InputIterator1  __first1,
_InputIterator1  __last1,
_InputIterator2  __first2 
)
inline

Finds the places in ranges which don't match.

Parameters
__first1An input iterator.
__last1An input iterator.
__first2An input iterator.
Returns
A pair of iterators pointing to the first mismatch.

This compares the elements of two ranges using == and returns a pair of iterators. The first iterator points into the first range, the second iterator points into the second range, and the elements pointed to by the iterators are not equal.

Definition at line 1282 of file stl_algobase.h.

template<typename _InputIterator1 , typename _InputIterator2 , typename _BinaryPredicate >
pair<_InputIterator1, _InputIterator2> std::mismatch ( _InputIterator1  __first1,
_InputIterator1  __last1,
_InputIterator2  __first2,
_BinaryPredicate  __binary_pred 
)
inline

Finds the places in ranges which don't match.

Parameters
__first1An input iterator.
__last1An input iterator.
__first2An input iterator.
__binary_predA binary predicate functor.
Returns
A pair of iterators pointing to the first mismatch.

This compares the elements of two ranges using the binary_pred parameter, and returns a pair of iterators. The first iterator points into the first range, the second iterator points into the second range, and the elements pointed to by the iterators are not equal.

Definition at line 1316 of file stl_algobase.h.

template<typename _InputIterator1 , typename _InputIterator2 >
pair<_InputIterator1, _InputIterator2> std::mismatch ( _InputIterator1  __first1,
_InputIterator1  __last1,
_InputIterator2  __first2,
_InputIterator2  __last2 
)
inline

Finds the places in ranges which don't match.

Parameters
__first1An input iterator.
__last1An input iterator.
__first2An input iterator.
__last2An input iterator.
Returns
A pair of iterators pointing to the first mismatch.

This compares the elements of two ranges using == and returns a pair of iterators. The first iterator points into the first range, the second iterator points into the second range, and the elements pointed to by the iterators are not equal.

Definition at line 1362 of file stl_algobase.h.

template<typename _InputIterator1 , typename _InputIterator2 , typename _BinaryPredicate >
pair<_InputIterator1, _InputIterator2> std::mismatch ( _InputIterator1  __first1,
_InputIterator1  __last1,
_InputIterator2  __first2,
_InputIterator2  __last2,
_BinaryPredicate  __binary_pred 
)
inline

Finds the places in ranges which don't match.

Parameters
__first1An input iterator.
__last1An input iterator.
__first2An input iterator.
__last2An input iterator.
__binary_predA binary predicate functor.
Returns
A pair of iterators pointing to the first mismatch.

This compares the elements of two ranges using the binary_pred parameter, and returns a pair of iterators. The first iterator points into the first range, the second iterator points into the second range, and the elements pointed to by the iterators are not equal.

Definition at line 1398 of file stl_algobase.h.

template<typename _InputIterator , typename _Predicate >
bool std::none_of ( _InputIterator  __first,
_InputIterator  __last,
_Predicate  __pred 
)
inline

Checks that a predicate is false for all the elements of a sequence.

Parameters
__firstAn input iterator.
__lastAn input iterator.
__predA predicate.
Returns
True if the check is true, false otherwise.

Returns true if __pred is false for each element in the range [__first,__last), and false otherwise.

Definition at line 525 of file stl_algo.h.

References std::find_if().

Referenced by std::any_of(), and std::is_partitioned().

template<typename _ForwardIterator1 , typename _ForwardIterator2 >
_ForwardIterator1 std::search ( _ForwardIterator1  __first1,
_ForwardIterator1  __last1,
_ForwardIterator2  __first2,
_ForwardIterator2  __last2 
)
inline

Search a sequence for a matching sub-sequence.

Parameters
__first1A forward iterator.
__last1A forward iterator.
__first2A forward iterator.
__last2A forward iterator.
Returns
The first iterator i in the range [__first1,__last1-(__last2-__first2)) such that *(i+N) == *(__first2+N) for each N in the range [0,__last2-__first2), or __last1 if no such iterator exists.

Searches the range [__first1,__last1) for a sub-sequence that compares equal value-by-value with the sequence given by [__first2,__last2) and returns an iterator to the first element of the sub-sequence, or __last1 if the sub-sequence is not found.

Because the sub-sequence must lie completely within the range [__first1,__last1) it must start at a position less than __last1-(__last2-__first2) where __last2-__first2 is the length of the sub-sequence.

This means that the returned iterator i will be in the range [__first1,__last1-(__last2-__first2))

Definition at line 4139 of file stl_algo.h.

template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate >
_ForwardIterator1 std::search ( _ForwardIterator1  __first1,
_ForwardIterator1  __last1,
_ForwardIterator2  __first2,
_ForwardIterator2  __last2,
_BinaryPredicate  __predicate 
)
inline

Search a sequence for a matching sub-sequence using a predicate.

Parameters
__first1A forward iterator.
__last1A forward iterator.
__first2A forward iterator.
__last2A forward iterator.
__predicateA binary predicate.
Returns
The first iterator i in the range [__first1,__last1-(__last2-__first2)) such that __predicate(*(i+N),*(__first2+N)) is true for each N in the range [0,__last2-__first2), or __last1 if no such iterator exists.

Searches the range [__first1,__last1) for a sub-sequence that compares equal value-by-value with the sequence given by [__first2,__last2), using __predicate to determine equality, and returns an iterator to the first element of the sub-sequence, or __last1 if no such iterator exists.

See also
search(_ForwardIter1, _ForwardIter1, _ForwardIter2, _ForwardIter2)

Definition at line 4179 of file stl_algo.h.

template<typename _ForwardIterator , typename _Integer , typename _Tp >
_ForwardIterator std::search_n ( _ForwardIterator  __first,
_ForwardIterator  __last,
_Integer  __count,
const _Tp &  __val 
)
inline

Search a sequence for a number of consecutive values.

Parameters
__firstA forward iterator.
__lastA forward iterator.
__countThe number of consecutive values.
__valThe value to find.
Returns
The first iterator i in the range [__first,__last-__count) such that *(i+N) == __val for each N in the range [0,__count), or __last if no such iterator exists.

Searches the range [__first,__last) for count consecutive elements equal to __val.

Definition at line 4213 of file stl_algo.h.

template<typename _ForwardIterator , typename _Integer , typename _Tp , typename _BinaryPredicate >
_ForwardIterator std::search_n ( _ForwardIterator  __first,
_ForwardIterator  __last,
_Integer  __count,
const _Tp &  __val,
_BinaryPredicate  __binary_pred 
)
inline

Search a sequence for a number of consecutive values using a predicate.

Parameters
__firstA forward iterator.
__lastA forward iterator.
__countThe number of consecutive values.
__valThe value to find.
__binary_predA binary predicate.
Returns
The first iterator i in the range [__first,__last-__count) such that __binary_pred(*(i+N),__val) is true for each N in the range [0,__count), or __last if no such iterator exists.

Searches the range [__first,__last) for __count consecutive elements for which the predicate returns true.

Definition at line 4247 of file stl_algo.h.