# stl_algo.h File Reference

Go to the source code of this file.

## Namespaces

- namespace std

## Defines

- #define _STL_ALGO_H

## Enumerations

- enum { _S_threshold }
- enum { _S_chunk_size }

## Functions

- template<typename _RandomAccessIterator , typename _Distance , typename _Compare > void std::__chunk_insertion_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Distance __chunk_size, _Compare __comp)
- template<typename _RandomAccessIterator , typename _Distance > void std::__chunk_insertion_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Distance __chunk_size)
- template<typename _RandomAccessIterator , typename _Size , typename _OutputIterator > _OutputIterator std::__copy_n (_RandomAccessIterator __first, _Size __n, _OutputIterator __result, random_access_iterator_tag)
- template<typename _InputIterator , typename _Size , typename _OutputIterator > _OutputIterator std::__copy_n (_InputIterator __first, _Size __n, _OutputIterator __result, input_iterator_tag)
- template<typename _RandomAccessIterator , typename _Compare > void std::__final_insertion_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
- template<typename _RandomAccessIterator > void std::__final_insertion_sort (_RandomAccessIterator __first, _RandomAccessIterator __last)
- template<typename _RandomAccessIterator , typename _Tp > _RandomAccessIterator std::__find (_RandomAccessIterator __first, _RandomAccessIterator __last, const _Tp &__val, random_access_iterator_tag)
- template<typename _InputIterator , typename _Tp > _InputIterator std::__find (_InputIterator __first, _InputIterator __last, const _Tp &__val, input_iterator_tag)
- template<typename _BidirectionalIterator1 , typename _BidirectionalIterator2 , typename _BinaryPredicate > _BidirectionalIterator1 std::__find_end (_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1, _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, bidirectional_iterator_tag, bidirectional_iterator_tag, _BinaryPredicate __comp)
- template<typename _BidirectionalIterator1 , typename _BidirectionalIterator2 > _BidirectionalIterator1 std::__find_end (_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1, _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, bidirectional_iterator_tag, bidirectional_iterator_tag)
- template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate > _ForwardIterator1 std::__find_end (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, forward_iterator_tag, forward_iterator_tag, _BinaryPredicate __comp)
- template<typename _ForwardIterator1 , typename _ForwardIterator2 > _ForwardIterator1 std::__find_end (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, forward_iterator_tag, forward_iterator_tag)
- template<typename _RandomAccessIterator , typename _Predicate > _RandomAccessIterator std::__find_if (_RandomAccessIterator __first, _RandomAccessIterator __last, _Predicate __pred, random_access_iterator_tag)
- template<typename _InputIterator , typename _Predicate > _InputIterator std::__find_if (_InputIterator __first, _InputIterator __last, _Predicate __pred, input_iterator_tag)
- template<typename _RandomAccessIterator , typename _Predicate > _RandomAccessIterator std::__find_if_not (_RandomAccessIterator __first, _RandomAccessIterator __last, _Predicate __pred, random_access_iterator_tag)
- template<typename _InputIterator , typename _Predicate > _InputIterator std::__find_if_not (_InputIterator __first, _InputIterator __last, _Predicate __pred, input_iterator_tag)
- template<typename _EuclideanRingElement > _EuclideanRingElement std::__gcd (_EuclideanRingElement __m, _EuclideanRingElement __n)
- template<typename _RandomAccessIterator , typename _Compare > void std::__heap_select (_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last, _Compare __comp)
- template<typename _RandomAccessIterator > void std::__heap_select (_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last)
- template<typename _ForwardIterator , typename _Predicate , typename _Distance > _ForwardIterator std::__inplace_stable_partition (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, _Distance __len)
- template<typename _RandomAccessIterator , typename _Compare > void std::__inplace_stable_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
- template<typename _RandomAccessIterator > void std::__inplace_stable_sort (_RandomAccessIterator __first, _RandomAccessIterator __last)
- template<typename _RandomAccessIterator , typename _Compare > void std::__insertion_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
- template<typename _RandomAccessIterator > void std::__insertion_sort (_RandomAccessIterator __first, _RandomAccessIterator __last)
- template<typename _RandomAccessIterator , typename _Size , typename _Compare > void std::__introselect (_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last, _Size __depth_limit, _Compare __comp)
- template<typename _RandomAccessIterator , typename _Size > void std::__introselect (_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last, _Size __depth_limit)
- template<typename _RandomAccessIterator , typename _Size , typename _Compare > void std::__introsort_loop (_RandomAccessIterator __first, _RandomAccessIterator __last, _Size __depth_limit, _Compare __comp)
- template<typename _RandomAccessIterator , typename _Size > void std::__introsort_loop (_RandomAccessIterator __first, _RandomAccessIterator __last, _Size __depth_limit)
- long long std::__lg (long long __n)
- long std::__lg (long __n)
- int std::__lg (int __n)
- template<typename _Size > _Size std::__lg (_Size __n)
- template<typename _Tp , typename _Compare > const _Tp & std::__median (const _Tp &__a, const _Tp &__b, const _Tp &__c, _Compare __comp)
- template<typename _Tp > const _Tp & std::__median (const _Tp &__a, const _Tp &__b, const _Tp &__c)
- template<typename _BidirectionalIterator , typename _Distance , typename _Pointer , typename _Compare > void std::__merge_adaptive (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Distance __len1, _Distance __len2, _Pointer __buffer, _Distance __buffer_size, _Compare __comp)
- template<typename _BidirectionalIterator , typename _Distance , typename _Pointer > void std::__merge_adaptive (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Distance __len1, _Distance __len2, _Pointer __buffer, _Distance __buffer_size)
- template<typename _BidirectionalIterator1 , typename _BidirectionalIterator2 , typename _BidirectionalIterator3 , typename _Compare > _BidirectionalIterator3 std::__merge_backward (_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1, _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, _BidirectionalIterator3 __result, _Compare __comp)
- template<typename _BidirectionalIterator1 , typename _BidirectionalIterator2 , typename _BidirectionalIterator3 > _BidirectionalIterator3 std::__merge_backward (_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1, _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, _BidirectionalIterator3 __result)
- template<typename _RandomAccessIterator1 , typename _RandomAccessIterator2 , typename _Distance , typename _Compare > void std::__merge_sort_loop (_RandomAccessIterator1 __first, _RandomAccessIterator1 __last, _RandomAccessIterator2 __result, _Distance __step_size, _Compare __comp)
- template<typename _RandomAccessIterator1 , typename _RandomAccessIterator2 , typename _Distance > void std::__merge_sort_loop (_RandomAccessIterator1 __first, _RandomAccessIterator1 __last, _RandomAccessIterator2 __result, _Distance __step_size)
- template<typename _RandomAccessIterator , typename _Pointer , typename _Compare > void std::__merge_sort_with_buffer (_RandomAccessIterator __first, _RandomAccessIterator __last, _Pointer __buffer, _Compare __comp)
- template<typename _RandomAccessIterator , typename _Pointer > void std::__merge_sort_with_buffer (_RandomAccessIterator __first, _RandomAccessIterator __last, _Pointer __buffer)
- template<typename _BidirectionalIterator , typename _Distance , typename _Compare > void std::__merge_without_buffer (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Distance __len1, _Distance __len2, _Compare __comp)
- template<typename _BidirectionalIterator , typename _Distance > void std::__merge_without_buffer (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Distance __len1, _Distance __len2)
- template<typename _BidirectionalIterator , typename _Predicate > _BidirectionalIterator std::__partition (_BidirectionalIterator __first, _BidirectionalIterator __last, _Predicate __pred, bidirectional_iterator_tag)
- template<typename _ForwardIterator , typename _Predicate > _ForwardIterator std::__partition (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, forward_iterator_tag)
- template<typename _RandomAccessIterator > void std::__reverse (_RandomAccessIterator __first, _RandomAccessIterator __last, random_access_iterator_tag)
- template<typename _BidirectionalIterator > void std::__reverse (_BidirectionalIterator __first, _BidirectionalIterator __last, bidirectional_iterator_tag)
- template<typename _RandomAccessIterator > void std::__rotate (_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last, random_access_iterator_tag)
- template<typename _BidirectionalIterator > void std::__rotate (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, bidirectional_iterator_tag)
- template<typename _ForwardIterator > void std::__rotate (_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last, forward_iterator_tag)
- template<typename _BidirectionalIterator1 , typename _BidirectionalIterator2 , typename _Distance > _BidirectionalIterator1 std::__rotate_adaptive (_BidirectionalIterator1 __first, _BidirectionalIterator1 __middle, _BidirectionalIterator1 __last, _Distance __len1, _Distance __len2, _BidirectionalIterator2 __buffer, _Distance __buffer_size)
- template<typename _RandomAccessIter , typename _Integer , typename _Tp , typename _BinaryPredicate > _RandomAccessIter std::__search_n (_RandomAccessIter __first, _RandomAccessIter __last, _Integer __count, const _Tp &__val, _BinaryPredicate __binary_pred, std::random_access_iterator_tag)
- 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, std::forward_iterator_tag)
- template<typename _RandomAccessIter , typename _Integer , typename _Tp > _RandomAccessIter std::__search_n (_RandomAccessIter __first, _RandomAccessIter __last, _Integer __count, const _Tp &__val, std::random_access_iterator_tag)
- template<typename _ForwardIterator , typename _Integer , typename _Tp > _ForwardIterator std::__search_n (_ForwardIterator __first, _ForwardIterator __last, _Integer __count, const _Tp &__val, std::forward_iterator_tag)
- template<typename _ForwardIterator , typename _Pointer , typename _Predicate , typename _Distance > _ForwardIterator std::__stable_partition_adaptive (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, _Distance __len, _Pointer __buffer, _Distance __buffer_size)
- template<typename _RandomAccessIterator , typename _Pointer , typename _Distance , typename _Compare > void std::__stable_sort_adaptive (_RandomAccessIterator __first, _RandomAccessIterator __last, _Pointer __buffer, _Distance __buffer_size, _Compare __comp)
- template<typename _RandomAccessIterator , typename _Pointer , typename _Distance > void std::__stable_sort_adaptive (_RandomAccessIterator __first, _RandomAccessIterator __last, _Pointer __buffer, _Distance __buffer_size)
- template<typename _RandomAccessIterator , typename _Compare > void std::__unguarded_insertion_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
- template<typename _RandomAccessIterator > void std::__unguarded_insertion_sort (_RandomAccessIterator __first, _RandomAccessIterator __last)
- template<typename _RandomAccessIterator , typename _Tp , typename _Compare > void std::__unguarded_linear_insert (_RandomAccessIterator __last, _Tp __val, _Compare __comp)
- template<typename _RandomAccessIterator , typename _Tp > void std::__unguarded_linear_insert (_RandomAccessIterator __last, _Tp __val)
- template<typename _RandomAccessIterator , typename _Tp , typename _Compare > _RandomAccessIterator std::__unguarded_partition (_RandomAccessIterator __first, _RandomAccessIterator __last, _Tp __pivot, _Compare __comp)
- template<typename _RandomAccessIterator , typename _Tp > _RandomAccessIterator std::__unguarded_partition (_RandomAccessIterator __first, _RandomAccessIterator __last, _Tp __pivot)
- template<typename _InputIterator , typename _ForwardIterator , typename _BinaryPredicate > _ForwardIterator std::__unique_copy (_InputIterator __first, _InputIterator __last, _ForwardIterator __result, _BinaryPredicate __binary_pred, input_iterator_tag, forward_iterator_tag)
- template<typename _InputIterator , typename _OutputIterator , typename _BinaryPredicate > _OutputIterator std::__unique_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryPredicate __binary_pred, input_iterator_tag, output_iterator_tag)
- template<typename _ForwardIterator , typename _OutputIterator , typename _BinaryPredicate > _OutputIterator std::__unique_copy (_ForwardIterator __first, _ForwardIterator __last, _OutputIterator __result, _BinaryPredicate __binary_pred, forward_iterator_tag, output_iterator_tag)
- template<typename _InputIterator , typename _ForwardIterator > _ForwardIterator std::__unique_copy (_InputIterator __first, _InputIterator __last, _ForwardIterator __result, input_iterator_tag, forward_iterator_tag)
- template<typename _InputIterator , typename _OutputIterator > _OutputIterator std::__unique_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result, input_iterator_tag, output_iterator_tag)
- template<typename _ForwardIterator , typename _OutputIterator > _OutputIterator std::__unique_copy (_ForwardIterator __first, _ForwardIterator __last, _OutputIterator __result, forward_iterator_tag, output_iterator_tag)
- template<typename _ForwardIterator , typename _BinaryPredicate > _ForwardIterator std::adjacent_find (_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __binary_pred)
- template<typename _ForwardIterator > _ForwardIterator std::adjacent_find (_ForwardIterator __first, _ForwardIterator __last)
- 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 _ForwardIterator , typename _Tp , typename _Compare > bool std::binary_search (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val, _Compare __comp)
- template<typename _ForwardIterator , typename _Tp > bool std::binary_search (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val)
- template<typename _InputIterator , typename _OutputIterator , typename _Predicate > _OutputIterator std::copy_if (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Predicate __pred)
- template<typename _InputIterator , typename _Size , typename _OutputIterator > _OutputIterator std::copy_n (_InputIterator __first, _Size __n, _OutputIterator __result)
- 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 _ForwardIterator , typename _Tp , typename _Compare > pair< _ForwardIterator,
  _ForwardIterator > std::equal_range (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val, _Compare __comp)
- template<typename _ForwardIterator , typename _Tp > pair< _ForwardIterator,
  _ForwardIterator > std::equal_range (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val)
- template<typename _InputIterator , typename _Tp > _InputIterator std::find (_InputIterator __first, _InputIterator __last, const _Tp &__val)
- template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate > _ForwardIterator1 std::find_end (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __comp)
- template<typename _ForwardIterator1 , typename _ForwardIterator2 > _ForwardIterator1 std::find_end (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __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 _ForwardIterator > _InputIterator std::find_first_of (_InputIterator __first1, _InputIterator __last1, _ForwardIterator __first2, _ForwardIterator __last2)
- 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 _ForwardIterator , typename _Generator > void std::generate (_ForwardIterator __first, _ForwardIterator __last, _Generator __gen)
- template<typename _OutputIterator , typename _Size , typename _Generator > _OutputIterator std::generate_n (_OutputIterator __first, _Size __n, _Generator __gen)
- template<typename _InputIterator1 , typename _InputIterator2 , typename _Compare > bool std::includes (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp)
- template<typename _InputIterator1 , typename _InputIterator2 > bool std::includes (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2)
- template<typename _BidirectionalIterator , typename _Compare > void std::inplace_merge (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Compare __comp)
- template<typename _BidirectionalIterator > void std::inplace_merge (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last)
- template<typename _InputIterator , typename _Predicate > bool std::is_partitioned (_InputIterator __first, _InputIterator __last, _Predicate __pred)
- template<typename _ForwardIterator , typename _Compare > bool std::is_sorted (_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
- template<typename _ForwardIterator > bool std::is_sorted (_ForwardIterator __first, _ForwardIterator __last)
- template<typename _ForwardIterator , typename _Compare > _ForwardIterator std::is_sorted_until (_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
- template<typename _ForwardIterator > _ForwardIterator std::is_sorted_until (_ForwardIterator __first, _ForwardIterator __last)
- template<typename _ForwardIterator , typename _Tp , typename _Compare > _ForwardIterator std::lower_bound (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val, _Compare __comp)
- template<typename _ForwardIterator , typename _Tp > _ForwardIterator std::lower_bound (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val)
- template<typename _Tp , typename _Compare > _Tp std::max (initializer_list< _Tp >, _Compare)
- template<typename _Tp > _Tp std::max (initializer_list< _Tp >)
- template<typename _ForwardIterator , typename _Compare > _ForwardIterator std::max_element (_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
- template<typename _ForwardIterator > _ForwardIterator std::max_element (_ForwardIterator __first, _ForwardIterator __last)
- template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _Compare > _OutputIterator std::merge (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
- template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator > _OutputIterator std::merge (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result)
- template<typename _Tp , typename _Compare > _Tp std::min (initializer_list< _Tp >, _Compare)
- template<typename _Tp > _Tp std::min (initializer_list< _Tp >)
- template<typename _ForwardIterator , typename _Compare > _ForwardIterator std::min_element (_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
- template<typename _ForwardIterator > _ForwardIterator std::min_element (_ForwardIterator __first, _ForwardIterator __last)
- template<typename _Tp , typename _Compare > pair< _Tp, _Tp > std::minmax (initializer_list< _Tp >, _Compare)
- template<typename _Tp > pair< _Tp, _Tp > std::minmax (initializer_list< _Tp >)
- template<typename _Tp , typename _Compare > pair< const _Tp &, const _Tp & > std::minmax (const _Tp &__a, const _Tp &__b, _Compare __comp)
- template<typename _Tp > pair< const _Tp &, const _Tp & > std::minmax (const _Tp &__a, const _Tp &__b)
- template<typename _ForwardIterator , typename _Compare > pair< _ForwardIterator,
  _ForwardIterator > std::minmax_element (_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
- template<typename _ForwardIterator > pair< _ForwardIterator,
  _ForwardIterator > std::minmax_element (_ForwardIterator __first, _ForwardIterator __last)
- template<typename _BidirectionalIterator , typename _Compare > bool std::next_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp)
- template<typename _BidirectionalIterator > bool std::next_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last)
- template<typename _InputIterator , typename _Predicate > bool std::none_of (_InputIterator __first, _InputIterator __last, _Predicate __pred)
- template<typename _RandomAccessIterator , typename _Compare > void std::nth_element (_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last, _Compare __comp)
- template<typename _RandomAccessIterator > void std::nth_element (_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last)
- template<typename _RandomAccessIterator , typename _Compare > void std::partial_sort (_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last, _Compare __comp)
- template<typename _RandomAccessIterator > void std::partial_sort (_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last)
- template<typename _InputIterator , typename _RandomAccessIterator , typename _Compare > _RandomAccessIterator std::partial_sort_copy (_InputIterator __first, _InputIterator __last, _RandomAccessIterator __result_first, _RandomAccessIterator __result_last, _Compare __comp)
- template<typename _InputIterator , typename _RandomAccessIterator > _RandomAccessIterator std::partial_sort_copy (_InputIterator __first, _InputIterator __last, _RandomAccessIterator __result_first, _RandomAccessIterator __result_last)
- template<typename _ForwardIterator , typename _Predicate > _ForwardIterator std::partition (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred)
- template<typename _InputIterator , typename _OutputIterator1 , typename _OutputIterator2 , typename _Predicate > pair< _OutputIterator1,
  _OutputIterator2 > std::partition_copy (_InputIterator __first, _InputIterator __last, _OutputIterator1 __out_true, _OutputIterator2 __out_false, _Predicate __pred)
- template<typename _ForwardIterator , typename _Predicate > _ForwardIterator std::partition_point (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred)
- template<typename _BidirectionalIterator , typename _Compare > bool std::prev_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp)
- template<typename _BidirectionalIterator > bool std::prev_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last)
- template<typename _RandomAccessIterator , typename _RandomNumberGenerator > void std::random_shuffle (_RandomAccessIterator __first, _RandomAccessIterator __last, _RandomNumberGenerator &__rand)
- template<typename _RandomAccessIterator > void std::random_shuffle (_RandomAccessIterator __first, _RandomAccessIterator __last)
- template<typename _ForwardIterator , typename _Tp > _ForwardIterator std::remove (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__value)
- template<typename _InputIterator , typename _OutputIterator , typename _Tp > _OutputIterator std::remove_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result, const _Tp &__value)
- template<typename _InputIterator , typename _OutputIterator , typename _Predicate > _OutputIterator std::remove_copy_if (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Predicate __pred)
- template<typename _ForwardIterator , typename _Predicate > _ForwardIterator std::remove_if (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred)
- template<typename _ForwardIterator , typename _Tp > void std::replace (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__old_value, const _Tp &__new_value)
- template<typename _InputIterator , typename _OutputIterator , typename _Tp > _OutputIterator std::replace_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result, const _Tp &__old_value, const _Tp &__new_value)
- template<typename _InputIterator , typename _OutputIterator , typename _Predicate , typename _Tp > _OutputIterator std::replace_copy_if (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Predicate __pred, const _Tp &__new_value)
- template<typename _ForwardIterator , typename _Predicate , typename _Tp > void std::replace_if (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, const _Tp &__new_value)
- template<typename _BidirectionalIterator > void std::reverse (_BidirectionalIterator __first, _BidirectionalIterator __last)
- template<typename _BidirectionalIterator , typename _OutputIterator > _OutputIterator std::reverse_copy (_BidirectionalIterator __first, _BidirectionalIterator __last, _OutputIterator __result)
- template<typename _ForwardIterator > void std::rotate (_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last)
- template<typename _ForwardIterator , typename _OutputIterator > _OutputIterator std::rotate_copy (_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last, _OutputIterator __result)
- template<typename _ForwardIterator1 , typename _ForwardIterator2 , typename _BinaryPredicate > _ForwardIterator1 std::search (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __predicate)
- template<typename _ForwardIterator1 , typename _ForwardIterator2 > _ForwardIterator1 std::search (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2)
- 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)
- template<typename _ForwardIterator , typename _Integer , typename _Tp > _ForwardIterator std::search_n (_ForwardIterator __first, _ForwardIterator __last, _Integer __count, const _Tp &__val)
- template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _Compare > _OutputIterator std::set_difference (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
- template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator > _OutputIterator std::set_difference (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result)
- template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _Compare > _OutputIterator std::set_intersection (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
- template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator > _OutputIterator std::set_intersection (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result)
- template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _Compare > _OutputIterator std::set_symmetric_difference (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
- template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator > _OutputIterator std::set_symmetric_difference (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result)
- template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _Compare > _OutputIterator std::set_union (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
- template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator > _OutputIterator std::set_union (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result)
- template<typename _RandomAccessIterator , typename _Compare > void std::sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
- template<typename _RandomAccessIterator > void std::sort (_RandomAccessIterator __first, _RandomAccessIterator __last)
- template<typename _ForwardIterator , typename _Predicate > _ForwardIterator std::stable_partition (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred)
- template<typename _RandomAccessIterator , typename _Compare > void std::stable_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
- template<typename _RandomAccessIterator > void std::stable_sort (_RandomAccessIterator __first, _RandomAccessIterator __last)
- template<typename _InputIterator1 , typename _InputIterator2 , typename _OutputIterator , typename _BinaryOperation > _OutputIterator std::transform (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _OutputIterator __result, _BinaryOperation __binary_op)
- template<typename _InputIterator , typename _OutputIterator , typename _UnaryOperation > _OutputIterator std::transform (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _UnaryOperation __unary_op)
- template<typename _ForwardIterator , typename _BinaryPredicate > _ForwardIterator std::unique (_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __binary_pred)
- template<typename _ForwardIterator > _ForwardIterator std::unique (_ForwardIterator __first, _ForwardIterator __last)
- template<typename _InputIterator , typename _OutputIterator , typename _BinaryPredicate > _OutputIterator std::unique_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryPredicate __binary_pred)
- template<typename _InputIterator , typename _OutputIterator > _OutputIterator std::unique_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result)
- template<typename _ForwardIterator , typename _Tp , typename _Compare > _ForwardIterator std::upper_bound (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val, _Compare __comp)
- template<typename _ForwardIterator , typename _Tp > _ForwardIterator std::upper_bound (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val)

## Detailed Description

This is an internal header file, included by other library headers. You should not attempt to use it directly.

Definition in file stl_algo.h.