STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Classes | Namespaces | Macros | Functions | Variables
algorithm File Reference
#include <xmemory>
#include <cliext/memory>

Classes

class  cliext::_ISort
 

Namespaces

 cliext
 

Macros

#define _ALGORITHM_
 
#define _DEBUG_HEAP_PRED(first, last, pred)
 
#define _CLI_ALGORITHM_
 
#define _STLCLRDB_HEAP(first, last)
 
#define _STLCLRDB_HEAP_PRED(first, last, pred)
 

Functions

template<class _Iter1 , class _Iter2 , class _UIter1 , class _UIter2 >
pair< _Iter1, _Iter2 > _Rechecked_both (_Iter1 _Dest1, _Iter2 _Dest2, pair< _UIter1, _UIter2 > _Src)
 
template<class _InIt , class _Fn1 >
void _For_each_unchecked (_InIt _First, _InIt _Last, _Fn1 &_Func)
 
template<class _InIt , class _Fn1 >
_Fn1 for_each (_InIt _First, _InIt _Last, _Fn1 _Func)
 
template<class _InIt , class _Pr >
_InIt _Find_if_unchecked (_InIt _First, _InIt _Last, _Pr &_Pred)
 
template<class _InIt , class _Pr >
_InIt find_if (_InIt _First, _InIt _Last, _Pr _Pred)
 
template<class _FwdIt , class _Pr >
_FwdIt _Adjacent_find_unchecked (_FwdIt _First, _FwdIt _Last, _Pr &_Pred)
 
template<class _FwdIt , class _Pr >
_FwdIt adjacent_find (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _FwdIt >
_FwdIt adjacent_find (_FwdIt _First, _FwdIt _Last)
 
template<class _InIt , class _Pr >
iterator_traits< _InIt >::difference_type _Count_if_unchecked (_InIt _First, _InIt _Last, _Pr &_Pred)
 
template<class _InIt , class _Pr >
iterator_traits< _InIt >::difference_type count_if (_InIt _First, _InIt _Last, _Pr _Pred)
 
template<class _InIt1 , class _InIt2 , class _Pr >
pair< _InIt1, _InIt2 > _Mismatch_unchecked (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _Pr &_Pred)
 
template<class _InIt1 , class _InIt2 , class _Pr >
auto _Mismatch_no_deprecate1 (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _Pr &_Pred, input_iterator_tag, input_iterator_tag) -> pair< _InIt1, decltype(_Unchecked_idl0(_First2))>
 
template<class _InIt1 , class _InIt2 , class _Pr >
pair< _InIt1, _UNCHECKED_TYPE(_InIt2)> _Mismatch_no_deprecate1 (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _Pr &_Pred, random_access_iterator_tag, random_access_iterator_tag)
 
template<class _InIt1 , class _InIt2 , class _Pr >
pair< _InIt1, _InIt2 > _Mismatch_no_deprecate (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _Pr &_Pred)
 
template<class _InIt1 , class _InIt2 , class _Pr >
pair< _InIt1, _InIt2 > mismatch (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _Pr _Pred)
 
template<class _InIt1 , class _InIt2 >
pair< _InIt1, _InIt2 > mismatch (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2)
 
template<class _InIt1 , class _InIt2 , class _Pr >
pair< _InIt1, _InIt2 > _Mismatch_unchecked (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _Pr &_Pred)
 
template<class _InIt1 , class _InIt2 , class _Pr >
pair< _InIt1, _InIt2 > mismatch (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _Pr _Pred)
 
template<class _InIt1 , class _InIt2 >
pair< _InIt1, _InIt2 > mismatch (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2)
 
template<class _InIt , class _Pr >
bool _All_of_unchecked (_InIt _First, _InIt _Last, _Pr &_Pred)
 
template<class _InIt , class _Pr >
bool all_of (_InIt _First, _InIt _Last, _Pr _Pred)
 
template<class _InIt , class _Pr >
bool _Any_of_unchecked (_InIt _First, _InIt _Last, _Pr &_Pred)
 
template<class _InIt , class _Pr >
bool any_of (_InIt _First, _InIt _Last, _Pr _Pred)
 
template<class _InIt , class _Pr >
bool _None_of_unchecked (_InIt _First, _InIt _Last, _Pr &_Pred)
 
template<class _InIt , class _Pr >
bool none_of (_InIt _First, _InIt _Last, _Pr _Pred)
 
template<class _InIt , class _Pr >
_InIt _Find_if_not_unchecked (_InIt _First, _InIt _Last, _Pr &_Pred)
 
template<class _InIt , class _Pr >
_InIt find_if_not (_InIt _First, _InIt _Last, _Pr _Pred)
 
template<class _InIt , class _OutIt , class _Pr >
_OutIt _Copy_if_unchecked (_InIt _First, _InIt _Last, _OutIt _Dest, _Pr &_Pred)
 
template<class _InIt , class _OutIt , class _Pr >
_OutIt _Copy_if_no_deprecate (_InIt _First, _InIt _Last, _OutIt _Dest, _Pr &_Pred)
 
template<class _InIt , class _OutIt , class _Pr >
_OutIt copy_if (_InIt _First, _InIt _Last, _OutIt _Dest, _Pr _Pred)
 
template<class _InIt , class _OutIt1 , class _OutIt2 , class _Pr >
pair< _OutIt1, _OutIt2 > _Partition_copy_unchecked (_InIt _First, _InIt _Last, _OutIt1 _Dest1, _OutIt2 _Dest2, _Pr &_Pred)
 
template<class _InIt , class _OutIt1 , class _OutIt2 , class _Pr >
pair< _OutIt1, _OutIt2 > _Partition_copy_no_deprecate (_InIt _First, _InIt _Last, _OutIt1 _Dest1, _OutIt2 _Dest2, _Pr &_Pred)
 
template<class _InIt , class _OutIt1 , class _OutIt2 , class _Pr >
pair< _OutIt1, _OutIt2 > partition_copy (_InIt _First, _InIt _Last, _OutIt1 _Dest1, _OutIt2 _Dest2, _Pr _Pred)
 
template<class _InIt , class _Pr >
bool _Is_partitioned_unchecked (_InIt _First, _InIt _Last, _Pr &_Pred)
 
template<class _InIt , class _Pr >
bool is_partitioned (_InIt _First, _InIt _Last, _Pr _Pred)
 
template<class _FwdIt , class _Pr >
_FwdIt _Partition_point_unchecked (_FwdIt _First, _FwdIt _Last, _Pr &_Pred)
 
template<class _FwdIt , class _Pr >
_FwdIt partition_point (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 _Search_unchecked (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2, _Pr &_Pred, forward_iterator_tag, forward_iterator_tag)
 
template<class _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 _Search_unchecked (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2, _Pr &_Pred, random_access_iterator_tag, random_access_iterator_tag)
 
template<class _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 search (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2, _Pr _Pred)
 
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt1 search (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2)
 
template<class _FwdIt , class _Diff , class _Ty , class _Pr >
_FwdIt _Search_n_unchecked (_FwdIt _First, _FwdIt _Last, _Diff _Count, const _Ty &_Val, _Pr &_Pred, forward_iterator_tag)
 
template<class _FwdIt , class _Diff , class _Ty , class _Pr >
_FwdIt _Search_n_unchecked (_FwdIt _First, _FwdIt _Last, _Diff _Count, const _Ty &_Val, _Pr &_Pred, random_access_iterator_tag)
 
template<class _FwdIt , class _Diff , class _Ty , class _Pr >
_FwdIt search_n (_FwdIt _First, _FwdIt _Last, _Diff _Count, const _Ty &_Val, _Pr _Pred)
 
template<class _FwdIt , class _Diff , class _Ty >
_FwdIt search_n (_FwdIt _First, _FwdIt _Last, _Diff _Count, const _Ty &_Val)
 
template<class _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 _Find_end_unchecked (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2, _Pr &_Pred)
 
template<class _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 find_end (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2, _Pr _Pred)
 
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt1 find_end (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2)
 
template<class _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 _Find_first_of_unchecked (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2, _Pr &_Pred)
 
template<class _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 find_first_of (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2, _Pr _Pred)
 
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt1 find_first_of (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2)
 
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt2 _Swap_ranges_unchecked (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _Dest)
 
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt2 _Swap_ranges1 (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _Dest, forward_iterator_tag, forward_iterator_tag)
 
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt2 _Swap_ranges1 (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _Dest, random_access_iterator_tag, random_access_iterator_tag)
 
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt2 swap_ranges (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _Dest)
 
template<class _InIt , class _OutIt , class _Fn1 >
_OutIt _Transform_unchecked (_InIt _First, _InIt _Last, _OutIt _Dest, _Fn1 &_Func)
 
template<class _InIt , class _OutIt , class _Fn1 >
_OutIt _Transform_no_deprecate1 (_InIt _First, _InIt _Last, _OutIt _Dest, _Fn1 &_Func, input_iterator_tag, _Any_tag)
 
template<class _InIt , class _OutIt , class _Fn1 >
_OutIt _Transform_no_deprecate1 (_InIt _First, _InIt _Last, _OutIt _Dest, _Fn1 &_Func, random_access_iterator_tag, random_access_iterator_tag)
 
template<class _InIt , class _OutIt , class _Fn1 >
_OutIt _Transform_no_deprecate (_InIt _First, _InIt _Last, _OutIt _Dest, _Fn1 &_Func)
 
template<class _InIt , class _OutIt , class _Fn1 >
_OutIt transform (_InIt _First, _InIt _Last, _OutIt _Dest, _Fn1 _Func)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Fn2 >
_OutIt _Transform_unchecked (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _OutIt _Dest, _Fn2 &_Func)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Fn2 >
_OutIt _Transform_no_deprecate2 (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _OutIt _Dest, _Fn2 &_Func, input_iterator_tag, _Any_tag)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Fn2 >
_OutIt _Transform_no_deprecate2 (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _OutIt _Dest, _Fn2 &_Func, random_access_iterator_tag, random_access_iterator_tag)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Fn2 >
_OutIt _Transform_no_deprecate1 (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _OutIt _Dest, _Fn2 &_Func, input_iterator_tag, input_iterator_tag)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Fn2 >
_OutIt _Transform_no_deprecate1 (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _OutIt _Dest, _Fn2 &_Func, random_access_iterator_tag, random_access_iterator_tag)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Fn2 >
_OutIt _Transform_no_deprecate (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _OutIt _Dest, _Fn2 &_Func)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Fn2 >
_OutIt transform (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _OutIt _Dest, _Fn2 _Func)
 
template<class _FwdIt , class _Ty >
void _Replace_unchecked (_FwdIt _First, _FwdIt _Last, const _Ty &_Oldval, const _Ty &_Newval)
 
template<class _FwdIt , class _Ty >
void replace (_FwdIt _First, _FwdIt _Last, const _Ty &_Oldval, const _Ty &_Newval)
 
template<class _FwdIt , class _Pr , class _Ty >
void _Replace_if_unchecked (_FwdIt _First, _FwdIt _Last, _Pr &_Pred, const _Ty &_Val)
 
template<class _FwdIt , class _Pr , class _Ty >
void replace_if (_FwdIt _First, _FwdIt _Last, _Pr _Pred, const _Ty &_Val)
 
template<class _InIt , class _OutIt , class _Ty >
_OutIt _Replace_copy_unchecked (_InIt _First, _InIt _Last, _OutIt _Dest, const _Ty &_Oldval, const _Ty &_Newval)
 
template<class _InIt , class _OutIt , class _Ty >
_OutIt _Replace_copy1 (_InIt _First, _InIt _Last, _OutIt _Dest, const _Ty &_Oldval, const _Ty &_Newval, input_iterator_tag, _Any_tag)
 
template<class _InIt , class _OutIt , class _Ty >
_OutIt _Replace_copy1 (_InIt _First, _InIt _Last, _OutIt _Dest, const _Ty &_Oldval, const _Ty &_Newval, random_access_iterator_tag, random_access_iterator_tag)
 
template<class _InIt , class _OutIt , class _Ty >
_OutIt replace_copy (_InIt _First, _InIt _Last, _OutIt _Dest, const _Ty &_Oldval, const _Ty &_Newval)
 
template<class _InIt , class _OutIt , class _Pr , class _Ty >
_OutIt _Replace_copy_if_unchecked (_InIt _First, _InIt _Last, _OutIt _Dest, _Pr &_Pred, const _Ty &_Val)
 
template<class _InIt , class _OutIt , class _Pr , class _Ty >
_OutIt _Replace_copy_if_no_deprecate1 (_InIt _First, _InIt _Last, _OutIt _Dest, _Pr &_Pred, const _Ty &_Val, input_iterator_tag, _Any_tag)
 
template<class _InIt , class _OutIt , class _Pr , class _Ty >
_OutIt _Replace_copy_if_no_deprecate1 (_InIt _First, _InIt _Last, _OutIt _Dest, _Pr &_Pred, const _Ty &_Val, random_access_iterator_tag, random_access_iterator_tag)
 
template<class _InIt , class _OutIt , class _Pr , class _Ty >
_OutIt _Replace_copy_if_no_deprecate (_InIt _First, _InIt _Last, _OutIt _Dest, _Pr &_Pred, const _Ty &_Val)
 
template<class _InIt , class _OutIt , class _Pr , class _Ty >
_OutIt replace_copy_if (_InIt _First, _InIt _Last, _OutIt _Dest, _Pr _Pred, const _Ty &_Val)
 
template<class _FwdIt , class _Fn0 >
void _Generate_unchecked (_FwdIt _First, _FwdIt _Last, _Fn0 &_Func)
 
template<class _FwdIt , class _Fn0 >
void generate (_FwdIt _First, _FwdIt _Last, _Fn0 _Func)
 
template<class _OutIt , class _Diff , class _Fn0 >
_OutIt _Generate_n_unchecked (_OutIt _Dest, _Diff _Count, _Fn0 &_Func)
 
template<class _OutIt , class _Diff , class _Fn0 >
_OutIt generate_n (_OutIt _Dest, _Diff _Count, _Fn0 _Func)
 
template<class _InIt , class _OutIt , class _Ty >
_OutIt _Remove_copy_unchecked (_InIt _First, _InIt _Last, _OutIt _Dest, const _Ty &_Val)
 
template<class _InIt , class _OutIt , class _Ty >
_OutIt remove_copy (_InIt _First, _InIt _Last, _OutIt _Dest, const _Ty &_Val)
 
template<class _InIt , class _OutIt , class _Pr >
_OutIt _Remove_copy_if_unchecked (_InIt _First, _InIt _Last, _OutIt _Dest, _Pr &_Pred)
 
template<class _InIt , class _OutIt , class _Pr >
_OutIt _Remove_copy_if_no_deprecate (_InIt _First, _InIt _Last, _OutIt _Dest, _Pr &_Pred)
 
template<class _InIt , class _OutIt , class _Pr >
_OutIt remove_copy_if (_InIt _First, _InIt _Last, _OutIt _Dest, _Pr _Pred)
 
template<class _FwdIt , class _Ty >
_FwdIt _Remove_unchecked (_FwdIt _First, _FwdIt _Last, const _Ty &_Val)
 
template<class _FwdIt , class _Ty >
_FwdIt remove (_FwdIt _First, _FwdIt _Last, const _Ty &_Val)
 
template<class _FwdIt , class _Pr >
_FwdIt _Remove_if_unchecked (_FwdIt _First, _FwdIt _Last, _Pr &_Pred)
 
template<class _FwdIt , class _Pr >
_FwdIt remove_if (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _FwdIt , class _Pr >
_FwdIt _Unique_unchecked (_FwdIt _First, _FwdIt _Last, _Pr &_Pred)
 
template<class _FwdIt , class _Pr >
_FwdIt unique (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _FwdIt >
_FwdIt unique (_FwdIt _First, _FwdIt _Last)
 
template<class _InIt , class _OutIt , class _Pr >
_OutIt _Unique_copy_unchecked (_InIt _First, _InIt _Last, _OutIt _Dest, _Pr &_Pred, input_iterator_tag)
 
template<class _FwdIt , class _OutIt , class _Pr >
_OutIt _Unique_copy_unchecked (_FwdIt _First, _FwdIt _Last, _OutIt _Dest, _Pr &_Pred, forward_iterator_tag)
 
template<class _InIt , class _OutIt , class _Pr >
_OutIt _Unique_copy_no_deprecate (_InIt _First, _InIt _Last, _OutIt _Dest, _Pr &_Pred)
 
template<class _InIt , class _OutIt , class _Pr >
_OutIt unique_copy (_InIt _First, _InIt _Last, _OutIt _Dest, _Pr _Pred)
 
template<class _InIt , class _OutIt >
_OutIt unique_copy (_InIt _First, _InIt _Last, _OutIt _Dest)
 
template<class _BidIt , class _OutIt >
_OutIt _Reverse_copy_unchecked (_BidIt _First, _BidIt _Last, _OutIt _Dest)
 
template<class _BidIt , class _OutIt >
_OutIt _Reverse_copy1 (_BidIt _First, _BidIt _Last, _OutIt _Dest, bidirectional_iterator_tag, _Any_tag)
 
template<class _BidIt , class _OutIt >
_OutIt _Reverse_copy1 (_BidIt _First, _BidIt _Last, _OutIt _Dest, random_access_iterator_tag, random_access_iterator_tag)
 
template<class _BidIt , class _OutIt >
_OutIt reverse_copy (_BidIt _First, _BidIt _Last, _OutIt _Dest)
 
template<class _FwdIt , class _OutIt >
_OutIt _Rotate_copy_unchecked (_FwdIt _First, _FwdIt _Mid, _FwdIt _Last, _OutIt _Dest)
 
template<class _FwdIt , class _OutIt >
_OutIt _Rotate_copy1 (_FwdIt _First, _FwdIt _Mid, _FwdIt _Last, _OutIt _Dest, forward_iterator_tag, _Any_tag)
 
template<class _FwdIt , class _OutIt >
_OutIt _Rotate_copy1 (_FwdIt _First, _FwdIt _Mid, _FwdIt _Last, _OutIt _Dest, random_access_iterator_tag, random_access_iterator_tag)
 
template<class _FwdIt , class _OutIt >
_OutIt rotate_copy (_FwdIt _First, _FwdIt _Mid, _FwdIt _Last, _OutIt _Dest)
 
template<class _RanIt , class _Fn1 >
void _Random_shuffle_unchecked (_RanIt _First, _RanIt _Last, _Fn1 &_Func)
 
template<class _RanIt , class _Fn1 >
void _Random_shuffle1 (_RanIt _First, _RanIt _Last, _Fn1 &_Func)
 
template<class _RanIt , class _Urng >
void shuffle (_RanIt _First, _RanIt _Last, _Urng &&_Func)
 
template<class _FwdIt , class _Pr >
_FwdIt _Partition_unchecked (_FwdIt _First, _FwdIt _Last, _Pr &_Pred, forward_iterator_tag)
 
template<class _BidIt , class _Pr >
_BidIt _Partition_unchecked (_BidIt _First, _BidIt _Last, _Pr &_Pred, bidirectional_iterator_tag)
 
template<class _FwdIt , class _Pr >
_FwdIt partition (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _BidIt , class _Diff , class _Ty >
_BidIt _Buffered_rotate_unchecked (_BidIt _First, _BidIt _Mid, _BidIt _Last, _Diff _Count1, _Diff _Count2, _Temp_iterator< _Ty > &_Tempbuf)
 
template<class _BidIt , class _Pr , class _Diff , class _Ty >
_BidIt _Stable_partition_unchecked1 (_BidIt _First, _BidIt _Last, _Pr &_Pred, _Diff _Count, _Temp_iterator< _Ty > &_Tempbuf)
 
template<class _BidIt , class _Pr >
_BidIt _Stable_partition_unchecked (_BidIt _First, _BidIt _Last, _Pr &_Pred)
 
template<class _BidIt , class _Pr >
_BidIt stable_partition (_BidIt _First, _BidIt _Last, _Pr _Pred)
 
template<class _RanIt , class _Diff , class _Ty , class _Pr >
void _Push_heap_by_index (_RanIt _First, _Diff _Hole, _Diff _Top, _Ty &&_Val, _Pr &_Pred)
 
template<class _RanIt , class _Pr >
void _Push_heap_unchecked (_RanIt _First, _RanIt _Last, _Pr &_Pred)
 
template<class _RanIt , class _Pr >
void push_heap (_RanIt _First, _RanIt _Last, _Pr _Pred)
 
template<class _RanIt >
void push_heap (_RanIt _First, _RanIt _Last)
 
template<class _RanIt , class _Diff , class _Ty , class _Pr >
void _Pop_heap_hole_by_index (_RanIt _First, _Diff _Hole, _Diff _Bottom, _Ty &&_Val, _Pr &_Pred)
 
template<class _RanIt , class _Ty , class _Pr >
void _Pop_heap_hole_unchecked (_RanIt _First, _RanIt _Last, _RanIt _Dest, _Ty &&_Val, _Pr &_Pred)
 
template<class _RanIt , class _Pr >
void _Pop_heap_unchecked (_RanIt _First, _RanIt _Last, _Pr &_Pred)
 
template<class _RanIt , class _Pr >
void pop_heap (_RanIt _First, _RanIt _Last, _Pr _Pred)
 
template<class _RanIt >
void pop_heap (_RanIt _First, _RanIt _Last)
 
template<class _RanIt , class _Pr >
void _Make_heap_unchecked (_RanIt _First, _RanIt _Last, _Pr &_Pred)
 
template<class _RanIt , class _Pr >
void make_heap (_RanIt _First, _RanIt _Last, _Pr _Pred)
 
template<class _RanIt >
void make_heap (_RanIt _First, _RanIt _Last)
 
template<class _RanIt , class _Pr >
void _Sort_heap_unchecked (_RanIt _First, _RanIt _Last, _Pr &_Pred)
 
template<class _RanIt , class _Pr >
void sort_heap (_RanIt _First, _RanIt _Last, _Pr _Pred)
 
template<class _RanIt >
void sort_heap (_RanIt _First, _RanIt _Last)
 
template<class _FwdIt , class _Ty , class _Pr >
_FwdIt _Lower_bound_unchecked (_FwdIt _First, _FwdIt _Last, const _Ty &_Val, _Pr &_Pred)
 
template<class _FwdIt , class _Ty , class _Pr >
_FwdIt lower_bound (_FwdIt _First, _FwdIt _Last, const _Ty &_Val, _Pr _Pred)
 
template<class _FwdIt , class _Ty >
_FwdIt lower_bound (_FwdIt _First, _FwdIt _Last, const _Ty &_Val)
 
template<class _FwdIt , class _Ty , class _Pr >
_FwdIt _Upper_bound_unchecked (_FwdIt _First, _FwdIt _Last, const _Ty &_Val, _Pr &_Pred)
 
template<class _FwdIt , class _Ty , class _Pr >
_FwdIt upper_bound (_FwdIt _First, _FwdIt _Last, const _Ty &_Val, _Pr _Pred)
 
template<class _FwdIt , class _Ty >
_FwdIt upper_bound (_FwdIt _First, _FwdIt _Last, const _Ty &_Val)
 
template<class _FwdIt , class _Ty , class _Pr >
pair< _FwdIt, _FwdIt > _Equal_range_unchecked (_FwdIt _First, _FwdIt _Last, const _Ty &_Val, _Pr &_Pred)
 
template<class _FwdIt , class _Ty , class _Pr >
pair< _FwdIt, _FwdIt > equal_range (_FwdIt _First, _FwdIt _Last, const _Ty &_Val, _Pr _Pred)
 
template<class _FwdIt , class _Ty >
pair< _FwdIt, _FwdIt > equal_range (_FwdIt _First, _FwdIt _Last, const _Ty &_Val)
 
template<class _FwdIt , class _Ty , class _Pr >
bool _Binary_search_unchecked (_FwdIt _First, _FwdIt _Last, const _Ty &_Val, _Pr &_Pred)
 
template<class _FwdIt , class _Ty , class _Pr >
bool binary_search (_FwdIt _First, _FwdIt _Last, const _Ty &_Val, _Pr _Pred)
 
template<class _FwdIt , class _Ty >
bool binary_search (_FwdIt _First, _FwdIt _Last, const _Ty &_Val)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Merge_unchecked (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr &_Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Merge_no_deprecate1 (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr &_Pred, input_iterator_tag, input_iterator_tag, _Any_tag)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Merge_no_deprecate1 (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr &_Pred, random_access_iterator_tag, random_access_iterator_tag, random_access_iterator_tag)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Merge_no_deprecate (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr &_Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt merge (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt merge (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
 
template<class _BidIt1 , class _BidIt2 , class _BidIt3 , class _Pr >
_BidIt3 _Buffered_merge_backward_unchecked (_BidIt1 _First1, _BidIt1 _Last1, _BidIt2 _First2, _BidIt2 _Last2, _BidIt3 _Dest, _Pr &_Pred, bool _In_place=false)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Buffered_merge_unchecked (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr &_Pred, bool _In_place=false)
 
template<class _BidIt , class _Diff , class _Ty , class _Pr >
void _Buffered_merge_unchecked (_BidIt _First, _BidIt _Mid, _BidIt _Last, _Diff _Count1, _Diff _Count2, _Temp_iterator< _Ty > &_Tempbuf, _Pr &_Pred)
 
template<class _BidIt , class _Pr >
void _Inplace_merge_unchecked (_BidIt _First, _BidIt _Mid, _BidIt _Last, _Pr &_Pred)
 
template<class _BidIt , class _Pr >
void inplace_merge (_BidIt _First, _BidIt _Mid, _BidIt _Last, _Pr _Pred)
 
template<class _BidIt >
void inplace_merge (_BidIt _First, _BidIt _Mid, _BidIt _Last)
 
template<class _BidIt , class _Pr >
void _Insertion_sort_unchecked (_BidIt _First, _BidIt _Last, _Pr &_Pred)
 
template<class _RanIt , class _Pr >
void _Med3_unchecked (_RanIt _First, _RanIt _Mid, _RanIt _Last, _Pr &_Pred)
 
template<class _RanIt , class _Pr >
void _Guess_median_unchecked (_RanIt _First, _RanIt _Mid, _RanIt _Last, _Pr &_Pred)
 
template<class _RanIt , class _Pr >
pair< _RanIt, _RanIt > _Partition_by_median_guess_unchecked (_RanIt _First, _RanIt _Last, _Pr &_Pred)
 
template<class _RanIt , class _Diff , class _Pr >
void _Sort_unchecked1 (_RanIt _First, _RanIt _Last, _Diff _Ideal, _Pr &_Pred)
 
template<class _RanIt , class _Pr >
void _Sort_unchecked (_RanIt _First, _RanIt _Last, _Pr &_Pred)
 
template<class _RanIt , class _Pr >
void sort (_RanIt _First, _RanIt _Last, _Pr _Pred)
 
template<class _RanIt >
void sort (_RanIt _First, _RanIt _Last)
 
template<class _BidIt , class _OutIt , class _Diff , class _Pr >
void _Chunked_merge_unchecked (_BidIt _First, _BidIt _Last, _OutIt _Dest, _Diff _Chunk, _Diff _Count, _Pr &_Pred)
 
template<class _BidIt , class _Diff , class _Ty , class _Pr >
void _Buffered_merge_sort_unchecked (_BidIt _First, _BidIt _Last, _Diff _Count, _Temp_iterator< _Ty > &_Tempbuf, _Pr &_Pred)
 
template<class _BidIt , class _Diff , class _Ty , class _Pr >
void _Stable_sort_unchecked1 (_BidIt _First, _BidIt _Last, _Diff _Count, _Temp_iterator< _Ty > &_Tempbuf, _Pr &_Pred)
 
template<class _BidIt , class _Pr >
void _Stable_sort_unchecked (_BidIt _First, _BidIt _Last, _Pr &_Pred)
 
template<class _BidIt , class _Pr >
void stable_sort (_BidIt _First, _BidIt _Last, _Pr _Pred)
 
template<class _BidIt >
void stable_sort (_BidIt _First, _BidIt _Last)
 
template<class _RanIt , class _Pr >
void _Partial_sort_unchecked (_RanIt _First, _RanIt _Mid, _RanIt _Last, _Pr &_Pred)
 
template<class _RanIt , class _Pr >
void partial_sort (_RanIt _First, _RanIt _Mid, _RanIt _Last, _Pr _Pred)
 
template<class _RanIt >
void partial_sort (_RanIt _First, _RanIt _Mid, _RanIt _Last)
 
template<class _InIt , class _RanIt , class _Pr >
_RanIt _Partial_sort_copy_unchecked (_InIt _First1, _InIt _Last1, _RanIt _First2, _RanIt _Last2, _Pr &_Pred)
 
template<class _InIt , class _RanIt , class _Pr >
_RanIt partial_sort_copy (_InIt _First1, _InIt _Last1, _RanIt _First2, _RanIt _Last2, _Pr _Pred)
 
template<class _InIt , class _RanIt >
_RanIt partial_sort_copy (_InIt _First1, _InIt _Last1, _RanIt _First2, _RanIt _Last2)
 
template<class _RanIt , class _Pr >
void _Nth_element_unchecked (_RanIt _First, _RanIt _Nth, _RanIt _Last, _Pr &_Pred)
 
template<class _RanIt , class _Pr >
void nth_element (_RanIt _First, _RanIt _Nth, _RanIt _Last, _Pr _Pred)
 
template<class _RanIt >
void nth_element (_RanIt _First, _RanIt _Nth, _RanIt _Last)
 
template<class _InIt1 , class _InIt2 , class _Pr >
bool _Includes_unchecked (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _Pr &_Pred)
 
template<class _InIt1 , class _InIt2 , class _Pr >
bool includes (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _Pr _Pred)
 
template<class _InIt1 , class _InIt2 >
bool includes (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Set_union_no_deprecate1 (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr &_Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Set_union_no_deprecate (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr &_Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt set_union (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt set_union (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Set_intersection_no_deprecate1 (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr &_Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Set_intersection_no_deprecate (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr &_Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt set_intersection (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt set_intersection (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Set_difference_no_deprecate1 (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr &_Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Set_difference_no_deprecate (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr &_Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt set_difference (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt set_difference (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Set_symmetric_difference_no_deprecate1 (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr &_Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Set_symmetric_difference_no_deprecate (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr &_Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt set_symmetric_difference (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt set_symmetric_difference (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
 
template<class _FwdIt , class _Pr >
_FwdIt _Max_element_unchecked (_FwdIt _First, _FwdIt _Last, _Pr &_Pred)
 
template<class _FwdIt , class _Pr >
_FwdIt max_element (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _FwdIt >
_FwdIt max_element (_FwdIt _First, _FwdIt _Last)
 
template<class _FwdIt , class _Pr >
_FwdIt _Min_element_unchecked (_FwdIt _First, _FwdIt _Last, _Pr &_Pred)
 
template<class _FwdIt , class _Pr >
_FwdIt min_element (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _FwdIt >
_FwdIt min_element (_FwdIt _First, _FwdIt _Last)
 
template<class _FwdIt , class _Pr >
pair< _FwdIt, _FwdIt > _Minmax_element_unchecked (_FwdIt _First, _FwdIt _Last, _Pr &_Pred)
 
template<class _FwdIt , class _Pr >
pair< _FwdIt, _FwdIt > minmax_element (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _FwdIt >
pair< _FwdIt, _FwdIt > minmax_element (_FwdIt _First, _FwdIt _Last)
 
template<class _Ty , class _Pr >
constexpr const _Ty &() max (const _Ty &_Left, const _Ty &_Right, _Pr _Pred) _NOEXCEPT_OP(_NOEXCEPT_OP(_DEBUG_LT_PRED(_Pred
 
template<class _Ty , class _Pr >
_Ty() max (_XSTD initializer_list< _Ty > _Ilist, _Pr _Pred)
 
template<class _Ty >
 _Post_equal_to_ (_Left< _Right?_Right:_Left) const expr const _Ty &(max)(const _Ty &_Left
 
const _Ty &_Right _NOEXCEPT_OP (_NOEXCEPT_OP(_DEBUG_LT(_Left, _Right)))
 
template<class _Ty >
_Ty() max (_XSTD initializer_list< _Ty > _Ilist)
 
template<class _Ty , class _Pr >
constexpr const _Ty &() min (const _Ty &_Left, const _Ty &_Right, _Pr _Pred) _NOEXCEPT_OP(_NOEXCEPT_OP(_DEBUG_LT_PRED(_Pred
 
template<class _Ty , class _Pr >
_Ty() min (_XSTD initializer_list< _Ty > _Ilist, _Pr _Pred)
 
template<class _Ty >
 _Post_equal_to_ (_Right< _Left?_Right:_Left) const expr const _Ty &(min)(const _Ty &_Left
 
const _Ty &_Right _NOEXCEPT_OP (_NOEXCEPT_OP(_DEBUG_LT(_Right, _Left)))
 
template<class _Ty >
_Ty() min (_XSTD initializer_list< _Ty > _Ilist)
 
template<class _Ty , class _Pr >
constexpr pair< const _Ty &, const _Ty & > minmax (const _Ty &_Left, const _Ty &_Right, _Pr _Pred)
 
template<class _Ty , class _Pr >
pair< _Ty, _Ty > minmax (_XSTD initializer_list< _Ty > _Ilist, _Pr _Pred)
 
template<class _Ty >
constexpr pair< const _Ty &, const _Ty & > minmax (const _Ty &_Left, const _Ty &_Right)
 
template<class _Ty >
pair< _Ty, _Ty > minmax (_XSTD initializer_list< _Ty > _Ilist)
 
template<class _BidIt , class _Pr >
bool _Next_permutation_unchecked (_BidIt _First, _BidIt _Last, _Pr &_Pred)
 
template<class _BidIt , class _Pr >
bool next_permutation (_BidIt _First, _BidIt _Last, _Pr _Pred)
 
template<class _BidIt >
bool next_permutation (_BidIt _First, _BidIt _Last)
 
template<class _BidIt , class _Pr >
bool _Prev_permutation_unchecked (_BidIt _First, _BidIt _Last, _Pr &_Pred)
 
template<class _BidIt , class _Pr >
bool prev_permutation (_BidIt _First, _BidIt _Last, _Pr _Pred)
 
template<class _BidIt >
bool prev_permutation (_BidIt _First, _BidIt _Last)
 
template<class _RanIt , class _Pr >
_RanIt _Is_heap_until_unchecked (_RanIt _First, _RanIt _Last, _Pr &_Pred)
 
template<class _RanIt , class _Pr >
_RanIt is_heap_until (_RanIt _First, _RanIt _Last, _Pr _Pred)
 
template<class _RanIt , class _Pr >
bool is_heap (_RanIt _First, _RanIt _Last, _Pr _Pred)
 
template<class _RanIt >
_RanIt is_heap_until (_RanIt _First, _RanIt _Last)
 
template<class _RanIt >
bool is_heap (_RanIt _First, _RanIt _Last)
 
template<class _FwdIt , class _Pr >
_FwdIt _Is_sorted_until_unchecked (_FwdIt _First, _FwdIt _Last, _Pr &_Pred)
 
template<class _FwdIt , class _Pr >
_FwdIt is_sorted_until (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _FwdIt , class _Pr >
bool is_sorted (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _FwdIt >
_FwdIt is_sorted_until (_FwdIt _First, _FwdIt _Last)
 
template<class _FwdIt >
bool is_sorted (_FwdIt _First, _FwdIt _Last)
 
template<class _InIt , class _Fn1 >
_Fn1 cliext::for_each_unchecked (_InIt _First, _InIt _Last, _Fn1 _Func)
 
template<class _InIt , class _Fn1 >
_Fn1 cliext::for_each (_InIt _First, _InIt _Last, _Fn1 _Func)
 
template<class _InIt , class _Ty >
_InIt cliext::find_unchecked (_InIt _First, _InIt _Last, const _Ty%_Val)
 
template<class _InIt , class _Ty >
_InIt cliext::find (_InIt _First, _InIt _Last, const _Ty%_Val)
 
const char * cliext::find (const char *_First, const char *_Last, int _Val)
 
const signed char * cliext::find (const signed char *_First, const signed char *_Last, int _Val)
 
const unsigned char * cliext::find (const unsigned char *_First, const unsigned char *_Last, int _Val)
 
template<class _InIt , class _Pr >
_InIt cliext::find_if_unchecked (_InIt _First, _InIt _Last, _Pr _Pred)
 
template<class _InIt , class _Pr >
_InIt cliext::find_if (_InIt _First, _InIt _Last, _Pr _Pred)
 
template<class _FwdIt >
_FwdIt cliext::adjacent_find_unchecked (_FwdIt _First, _FwdIt _Last)
 
template<class _FwdIt >
_FwdIt cliext::adjacent_find (_FwdIt _First, _FwdIt _Last)
 
template<class _FwdIt , class _Pr >
_FwdIt cliext::adjacent_find_unchecked (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _FwdIt , class _Pr >
_FwdIt cliext::adjacent_find (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _InIt , class _Ty >
iterator_traits< _InIt >::difference_type cliext::count_unchecked (_InIt _First, _InIt _Last, const _Ty%_Val)
 
template<class _InIt , class _Ty >
iterator_traits< _InIt >::difference_type cliext::count (_InIt _First, _InIt _Last, const _Ty%_Val)
 
template<class _InIt , class _Pr >
iterator_traits< _InIt >::difference_type cliext::count_if_unchecked (_InIt _First, _InIt _Last, _Pr _Pred)
 
template<class _InIt , class _Pr >
iterator_traits< _InIt >::difference_type cliext::count_if (_InIt _First, _InIt _Last, _Pr _Pred)
 
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt1 cliext::search_unchecked (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2)
 
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt1 cliext::search (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2)
 
template<class _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 cliext::search_unchecked (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2, _Pr _Pred)
 
template<class _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 cliext::search (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2, _Pr _Pred)
 
template<class _FwdIt1 , class _Diff2 , class _Ty >
_FwdIt1 cliext::_Search_n (_FwdIt1 _First1, _FwdIt1 _Last1, _Diff2 _Count, const _Ty%_Val, forward_iterator_tag)
 
template<class _FwdIt1 , class _Diff2 , class _Ty >
_FwdIt1 cliext::_Search_n (_FwdIt1 _First1, _FwdIt1 _Last1, _Diff2 _Count, const _Ty%_Val, random_access_iterator_tag)
 
template<class _FwdIt1 , class _Diff2 , class _Ty >
_FwdIt1 cliext::search_n (_FwdIt1 _First1, _FwdIt1 _Last1, _Diff2 _Count, const _Ty%_Val)
 
template<class _FwdIt1 , class _Diff2 , class _Ty , class _Pr >
_FwdIt1 cliext::_Search_n (_FwdIt1 _First1, _FwdIt1 _Last1, _Diff2 _Count, const _Ty%_Val, _Pr _Pred, forward_iterator_tag)
 
template<class _FwdIt1 , class _Diff2 , class _Ty , class _Pr >
_FwdIt1 cliext::_Search_n (_FwdIt1 _First1, _FwdIt1 _Last1, _Diff2 _Count, const _Ty%_Val, _Pr _Pred, random_access_iterator_tag)
 
template<class _FwdIt1 , class _Diff2 , class _Ty , class _Pr >
_FwdIt1 cliext::search_n (_FwdIt1 _First1, _FwdIt1 _Last1, _Diff2 _Count, const _Ty%_Val, _Pr _Pred)
 
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt1 cliext::find_end_unchecked (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2)
 
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt1 cliext::find_end (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2)
 
template<class _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 cliext::find_end_unchecked (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2, _Pr _Pred)
 
template<class _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 cliext::find_end (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2, _Pr _Pred)
 
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt1 cliext::find_first_of_unchecked (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2)
 
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt1 cliext::find_first_of (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2)
 
template<class _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 cliext::find_first_of_unchecked (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2, _Pr _Pred)
 
template<class _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 cliext::find_first_of (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2, _Pr _Pred)
 
template<class _FwdIt1 , class _FwdIt2 >
void cliext::iter_swap (_FwdIt1 _Left, _FwdIt2 _Right)
 
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt2 cliext::swap_ranges_unchecked (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2)
 
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt2 cliext::swap_ranges (_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2)
 
template<class _InIt , class _OutIt , class _Fn1 >
_OutIt cliext::transform_unchecked (_InIt _First, _InIt _Last, _OutIt _Dest, _Fn1 _Func)
 
template<class _InIt , class _OutIt , class _Fn1 >
_OutIt cliext::transform (_InIt _First, _InIt _Last, _OutIt _Dest, _Fn1 _Func)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Fn2 >
_OutIt cliext::transform_unchecked (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _OutIt _Dest, _Fn2 _Func)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Fn2 >
_OutIt cliext::transform (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _OutIt _Dest, _Fn2 _Func)
 
template<class _FwdIt , class _Ty >
void cliext::replace_unchecked (_FwdIt _First, _FwdIt _Last, const _Ty%_Oldval, const _Ty%_Newval)
 
template<class _FwdIt , class _Ty >
void cliext::replace (_FwdIt _First, _FwdIt _Last, const _Ty%_Oldval, const _Ty%_Newval)
 
template<class _FwdIt , class _Pr , class _Ty >
void cliext::replace_if_unchecked (_FwdIt _First, _FwdIt _Last, _Pr _Pred, const _Ty%_Val)
 
template<class _FwdIt , class _Pr , class _Ty >
void cliext::replace_if (_FwdIt _First, _FwdIt _Last, _Pr _Pred, const _Ty%_Val)
 
template<class _InIt , class _OutIt , class _Ty >
_OutIt cliext::replace_copy_unchecked (_InIt _First, _InIt _Last, _OutIt _Dest, const _Ty%_Oldval, const _Ty%_Newval)
 
template<class _InIt , class _OutIt , class _Ty >
_OutIt cliext::replace_copy (_InIt _First, _InIt _Last, _OutIt _Dest, const _Ty%_Oldval, const _Ty%_Newval)
 
template<class _InIt , class _OutIt , class _Pr , class _Ty >
_OutIt cliext::replace_copy_if_unchecked (_InIt _First, _InIt _Last, _OutIt _Dest, _Pr _Pred, const _Ty%_Val)
 
template<class _InIt , class _OutIt , class _Pr , class _Ty >
_OutIt cliext::replace_copy_if (_InIt _First, _InIt _Last, _OutIt _Dest, _Pr _Pred, const _Ty%_Val)
 
template<class _FwdIt , class _Fn0 >
void cliext::generate_unchecked (_FwdIt _First, _FwdIt _Last, _Fn0 _Func)
 
template<class _FwdIt , class _Fn0 >
void cliext::generate (_FwdIt _First, _FwdIt _Last, _Fn0 _Func)
 
template<class _OutIt , class _Diff , class _Fn0 >
void cliext::generate_n_unchecked (_OutIt _Dest, _Diff _Count, _Fn0 _Func)
 
template<class _OutIt , class _Diff , class _Fn0 >
void cliext::generate_n (_OutIt _Dest, _Diff _Count, _Fn0 _Func)
 
template<class _InIt , class _OutIt , class _Ty >
_OutIt cliext::remove_copy_unchecked (_InIt _First, _InIt _Last, _OutIt _Dest, const _Ty%_Val)
 
template<class _InIt , class _OutIt , class _Ty >
_OutIt cliext::remove_copy (_InIt _First, _InIt _Last, _OutIt _Dest, const _Ty%_Val)
 
template<class _InIt , class _OutIt , class _Pr >
_OutIt cliext::remove_copy_if_unchecked (_InIt _First, _InIt _Last, _OutIt _Dest, _Pr _Pred)
 
template<class _InIt , class _OutIt , class _Pr >
_OutIt cliext::remove_copy_if (_InIt _First, _InIt _Last, _OutIt _Dest, _Pr _Pred)
 
template<class _FwdIt , class _Ty >
_FwdIt cliext::remove_unchecked (_FwdIt _First, _FwdIt _Last, const _Ty%_Val)
 
template<class _FwdIt , class _Ty >
_FwdIt cliext::remove (_FwdIt _First, _FwdIt _Last, const _Ty%_Val)
 
template<class _FwdIt , class _Pr >
_FwdIt cliext::remove_if_unchecked (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _FwdIt , class _Pr >
_FwdIt cliext::remove_if (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _FwdIt >
_FwdIt cliext::unique_unchecked (_FwdIt _First, _FwdIt _Last)
 
template<class _FwdIt >
_FwdIt cliext::unique (_FwdIt _First, _FwdIt _Last)
 
template<class _FwdIt , class _Pr >
_FwdIt cliext::unique_unchecked (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _FwdIt , class _Pr >
_FwdIt cliext::unique (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _InIt , class _OutIt >
_OutIt cliext::_Unique_copy (_InIt _First, _InIt _Last, _OutIt _Dest, input_iterator_tag)
 
template<class _FwdIt , class _OutIt >
_OutIt cliext::_Unique_copy (_FwdIt _First, _FwdIt _Last, _OutIt _Dest, forward_iterator_tag)
 
template<class _BidIt , class _OutIt >
_OutIt cliext::_Unique_copy (_BidIt _First, _BidIt _Last, _OutIt _Dest, bidirectional_iterator_tag)
 
template<class _RanIt , class _OutIt >
_OutIt cliext::_Unique_copy (_RanIt _First, _RanIt _Last, _OutIt _Dest, random_access_iterator_tag)
 
template<class _InIt , class _OutIt >
_OutIt cliext::unique_copy_unchecked (_InIt _First, _InIt _Last, _OutIt _Dest)
 
template<class _InIt , class _OutIt >
_OutIt cliext::unique_copy (_InIt _First, _InIt _Last, _OutIt _Dest)
 
template<class _InIt , class _OutIt , class _Pr >
_OutIt cliext::_Unique_copy (_InIt _First, _InIt _Last, _OutIt _Dest, _Pr _Pred, input_iterator_tag)
 
template<class _FwdIt , class _OutIt , class _Pr >
_OutIt cliext::_Unique_copy (_FwdIt _First, _FwdIt _Last, _OutIt _Dest, _Pr _Pred, forward_iterator_tag)
 
template<class _BidIt , class _OutIt , class _Pr >
_OutIt cliext::_Unique_copy (_BidIt _First, _BidIt _Last, _OutIt _Dest, _Pr _Pred, bidirectional_iterator_tag)
 
template<class _RanIt , class _OutIt , class _Pr >
_OutIt cliext::_Unique_copy (_RanIt _First, _RanIt _Last, _OutIt _Dest, _Pr _Pred, random_access_iterator_tag)
 
template<class _InIt , class _OutIt , class _Pr >
_OutIt cliext::unique_copy_unchecked (_InIt _First, _InIt _Last, _OutIt _Dest, _Pr _Pred)
 
template<class _InIt , class _OutIt , class _Pr >
_OutIt cliext::unique_copy (_InIt _First, _InIt _Last, _OutIt _Dest, _Pr _Pred)
 
template<class _BidIt >
void cliext::_Reverse (_BidIt _First, _BidIt _Last, bidirectional_iterator_tag)
 
template<class _RanIt >
void cliext::_Reverse (_RanIt _First, _RanIt _Last, random_access_iterator_tag)
 
template<class _BidIt >
void cliext::reverse_unchecked (_BidIt _First, _BidIt _Last)
 
template<class _BidIt >
void cliext::reverse (_BidIt _First, _BidIt _Last)
 
template<class _BidIt , class _OutIt >
_OutIt cliext::reverse_copy_unchecked (_BidIt _First, _BidIt _Last, _OutIt _Dest)
 
template<class _BidIt , class _OutIt >
_OutIt cliext::reverse_copy (_BidIt _First, _BidIt _Last, _OutIt _Dest)
 
template<class _FwdIt >
void cliext::_Rotate (_FwdIt _First, _FwdIt _Mid, _FwdIt _Last, forward_iterator_tag)
 
template<class _BidIt >
void cliext::_Rotate (_BidIt _First, _BidIt _Mid, _BidIt _Last, bidirectional_iterator_tag)
 
template<class _RanIt >
void cliext::_Rotate (_RanIt _First, _RanIt _Mid, _RanIt _Last, random_access_iterator_tag)
 
template<class _FwdIt >
void cliext::rotate_unchecked (_FwdIt _First, _FwdIt _Mid, _FwdIt _Last)
 
template<class _FwdIt >
void cliext::rotate (_FwdIt _First, _FwdIt _Mid, _FwdIt _Last)
 
template<class _FwdIt , class _OutIt >
_OutIt cliext::rotate_copy_unchecked (_FwdIt _First, _FwdIt _Mid, _FwdIt _Last, _OutIt _Dest)
 
template<class _FwdIt , class _OutIt >
_OutIt cliext::rotate_copy (_FwdIt _First, _FwdIt _Mid, _FwdIt _Last, _OutIt _Dest)
 
int cliext::_Rand (void)
 
template<class _RanIt >
void cliext::random_shuffle_unchecked (_RanIt _First, _RanIt _Last)
 
template<class _RanIt >
void cliext::random_shuffle (_RanIt _First, _RanIt _Last)
 
template<class _RanIt , class _Fn1 >
void cliext::random_shuffle_unchecked (_RanIt _First, _RanIt _Last, _Fn1%_Func)
 
template<class _RanIt , class _Fn1 >
void cliext::random_shuffle (_RanIt _First, _RanIt _Last, _Fn1%_Func)
 
template<class _BidIt , class _Pr >
_BidIt cliext::partition_unchecked (_BidIt _First, _BidIt _Last, _Pr _Pred)
 
template<class _BidIt , class _Pr >
_BidIt cliext::partition (_BidIt _First, _BidIt _Last, _Pr _Pred)
 
template<class _BidIt , class _Pr , class _Diff , class _Ty >
_BidIt cliext::_XStable_partition (_BidIt _First, _BidIt _Last, _Pr _Pred, _Diff _Count, _Temp_iterator< _Ty > _Tempbuf)
 
template<class _BidIt , class _Pr >
_BidIt cliext::stable_partition_unchecked (_BidIt _First, _BidIt _Last, _Pr _Pred)
 
template<class _BidIt , class _Pr >
_BidIt cliext::stable_partition (_BidIt _First, _BidIt _Last, _Pr _Pred)
 
template<class _RanIt , class _Diff , class _Ty >
void cliext::_XPush_heap (_RanIt _First, _Diff _Hole, _Diff _Top, _Ty _Val)
 
template<class _RanIt >
void cliext::push_heap_unchecked (_RanIt _First, _RanIt _Last)
 
template<class _RanIt >
void cliext::push_heap (_RanIt _First, _RanIt _Last)
 
template<class _RanIt , class _Diff , class _Ty , class _Pr >
void cliext::_XPush_heap (_RanIt _First, _Diff _Hole, _Diff _Top, _Ty _Val, _Pr _Pred)
 
template<class _RanIt , class _Pr >
void cliext::push_heap_unchecked (_RanIt _First, _RanIt _Last, _Pr _Pred)
 
template<class _RanIt , class _Pr >
void cliext::push_heap (_RanIt _First, _RanIt _Last, _Pr _Pred)
 
template<class _RanIt , class _Diff , class _Ty >
void cliext::_XAdjust_heap (_RanIt _First, _Diff _Hole, _Diff _Bottom, _Ty _Val)
 
template<class _RanIt , class _Ty >
void cliext::_XPop_heap (_RanIt _First, _RanIt _Last, _RanIt _Dest, _Ty _Val)
 
template<class _RanIt >
void cliext::pop_heap_unchecked (_RanIt _First, _RanIt _Last)
 
template<class _RanIt >
void cliext::pop_heap (_RanIt _First, _RanIt _Last)
 
template<class _RanIt , class _Diff , class _Ty , class _Pr >
void cliext::_XAdjust_heap (_RanIt _First, _Diff _Hole, _Diff _Bottom, _Ty _Val, _Pr _Pred)
 
template<class _RanIt , class _Ty , class _Pr >
void cliext::_XPop_heap (_RanIt _First, _RanIt _Last, _RanIt _Dest, _Ty _Val, _Pr _Pred)
 
template<class _RanIt , class _Pr >
void cliext::pop_heap_unchecked (_RanIt _First, _RanIt _Last, _Pr _Pred)
 
template<class _RanIt , class _Pr >
void cliext::pop_heap (_RanIt _First, _RanIt _Last, _Pr _Pred)
 
template<class _RanIt >
void cliext::make_heap_unchecked (_RanIt _First, _RanIt _Last)
 
template<class _RanIt >
void cliext::make_heap (_RanIt _First, _RanIt _Last)
 
template<class _RanIt , class _Pr >
void cliext::make_heap_unchecked (_RanIt _First, _RanIt _Last, _Pr _Pred)
 
template<class _RanIt , class _Pr >
void cliext::make_heap (_RanIt _First, _RanIt _Last, _Pr _Pred)
 
template<class _RanIt >
void cliext::sort_heap_unchecked (_RanIt _First, _RanIt _Last)
 
template<class _RanIt >
void cliext::sort_heap (_RanIt _First, _RanIt _Last)
 
template<class _RanIt , class _Pr >
void cliext::sort_heap_unchecked (_RanIt _First, _RanIt _Last, _Pr _Pred)
 
template<class _RanIt , class _Pr >
void cliext::sort_heap (_RanIt _First, _RanIt _Last, _Pr _Pred)
 
template<class _FwdIt , class _Ty >
_FwdIt cliext::lower_bound_unchecked (_FwdIt _First, _FwdIt _Last, _Ty%_Val)
 
template<class _FwdIt , class _Ty >
_FwdIt cliext::lower_bound (_FwdIt _First, _FwdIt _Last, _Ty%_Val)
 
template<class _FwdIt , class _Ty , class _Pr >
_FwdIt cliext::lower_bound_unchecked (_FwdIt _First, _FwdIt _Last, const _Ty%_Val, _Pr _Pred)
 
template<class _FwdIt , class _Ty , class _Pr >
_FwdIt cliext::lower_bound (_FwdIt _First, _FwdIt _Last, const _Ty%_Val, _Pr _Pred)
 
template<class _FwdIt , class _Ty >
_FwdIt cliext::upper_bound_unchecked (_FwdIt _First, _FwdIt _Last, const _Ty%_Val)
 
template<class _FwdIt , class _Ty >
_FwdIt cliext::upper_bound (_FwdIt _First, _FwdIt _Last, const _Ty%_Val)
 
template<class _FwdIt , class _Ty , class _Pr >
_FwdIt cliext::upper_bound_unchecked (_FwdIt _First, _FwdIt _Last, const _Ty%_Val, _Pr _Pred)
 
template<class _FwdIt , class _Ty , class _Pr >
_FwdIt cliext::upper_bound (_FwdIt _First, _FwdIt _Last, const _Ty%_Val, _Pr _Pred)
 
template<class _FwdIt , class _Ty >
 cliext::_PAIR_TYPE (_FwdIt) equal_range_unchecked(_FwdIt _First
 
 cliext::_Iter_distance (_First, _Last, _Count)
 
 cliext::for (;0< _Count;)
 
 cliext::return (_PAIR_TYPE(_FwdIt)(_First, _First))
 
 cliext::return (cliext::equal_range_unchecked(_Unchecked(_First), _Unchecked(_Last), _Val))
 
template<class _FwdIt , class _Ty , class _Pr >
 cliext::_PAIR_TYPE (_FwdIt) equal_range_unchecked(_FwdIt _First
 
 cliext::return (cliext::equal_range_unchecked(_Unchecked(_First), _Unchecked(_Last), _Val, _Pred))
 
template<class _FwdIt , class _Ty >
bool cliext::binary_search_unchecked (_FwdIt _First, _FwdIt _Last, const _Ty%_Val)
 
template<class _FwdIt , class _Ty >
bool cliext::binary_search (_FwdIt _First, _FwdIt _Last, const _Ty%_Val)
 
template<class _FwdIt , class _Ty , class _Pr >
bool cliext::binary_search_unchecked (_FwdIt _First, _FwdIt _Last, const _Ty%_Val, _Pr _Pred)
 
template<class _FwdIt , class _Ty , class _Pr >
bool cliext::binary_search (_FwdIt _First, _FwdIt _Last, const _Ty%_Val, _Pr _Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt cliext::merge_unchecked (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
 
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt cliext::merge (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt cliext::merge_unchecked (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt cliext::merge (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
 
template<class _BidIt , class _Diff , class _Ty >
_BidIt cliext::_XBuffered_rotate (_BidIt _First, _BidIt _Mid, _BidIt _Last, _Diff _Count1, _Diff _Count2, _Temp_iterator< _Ty > _Tempbuf)
 
template<class _BidIt1 , class _BidIt2 , class _BidIt3 >
_BidIt3 cliext::_XMerge_backward (_BidIt1 _First1, _BidIt1 _Last1, _BidIt2 _First2, _BidIt2 _Last2, _BidIt3 _Dest)
 
template<class _BidIt , class _Diff , class _Ty >
void cliext::_XBuffered_merge (_BidIt _First, _BidIt _Mid, _BidIt _Last, _Diff _Count1, _Diff _Count2, _Temp_iterator< _Ty > _Tempbuf)
 
template<class _BidIt >
void cliext::inplace_merge_unchecked (_BidIt _First, _BidIt _Mid, _BidIt _Last)
 
template<class _BidIt >
void cliext::inplace_merge (_BidIt _First, _BidIt _Mid, _BidIt _Last)
 
template<class _BidIt1 , class _BidIt2 , class _BidIt3 , class _Pr >
_BidIt3 cliext::_XMerge_backward (_BidIt1 _First1, _BidIt1 _Last1, _BidIt2 _First2, _BidIt2 _Last2, _BidIt3 _Dest, _Pr _Pred)
 
template<class _BidIt , class _Diff , class _Ty , class _Pr >
void cliext::_XBuffered_merge (_BidIt _First, _BidIt _Mid, _BidIt _Last, _Diff _Count1, _Diff _Count2, _Temp_iterator< _Ty > _Tempbuf, _Pr _Pred)
 
template<class _BidIt , class _Pr >
void cliext::inplace_merge_unchecked (_BidIt _First, _BidIt _Mid, _BidIt _Last, _Pr _Pred)
 
template<class _BidIt , class _Pr >
void cliext::inplace_merge (_BidIt _First, _BidIt _Mid, _BidIt _Last, _Pr _Pred)
 
template<class _BidIt >
void cliext::_XInsertion_sort (_BidIt _First, _BidIt _Last)
 
template<class _RanIt >
void cliext::_XMed3 (_RanIt _First, _RanIt _Mid, _RanIt _Last)
 
template<class _RanIt >
void cliext::_XMedian (_RanIt _First, _RanIt _Mid, _RanIt _Last)
 
template<class _RanIt >
 cliext::_PAIR_TYPE (_RanIt) _XUnguarded_partition(_RanIt _First
 
 cliext::while (_First< _Pfirst &&!_STLCLRDB_LT(*(_Pfirst-1),*_Pfirst)&&!(*_Pfirst< *(_Pfirst-1)))--_Pfirst
 
 cliext::for (;;)
 
template<class _RanIt , class _Diff >
void cliext::_XSort (_RanIt _First, _RanIt _Last, _Diff _Ideal)
 
template<class _RanIt >
void cliext::sort_unchecked (_RanIt _First, _RanIt _Last)
 
template<class _RanIt >
void cliext::sort (_RanIt _First, _RanIt _Last)
 
template<class _BidIt , class _Pr >
void cliext::_XInsertion_sort (_BidIt _First, _BidIt _Last, _Pr _Pred)
 
template<class _RanIt , class _Pr >
void cliext::_XMed3 (_RanIt _First, _RanIt _Mid, _RanIt _Last, _Pr _Pred)
 
template<class _RanIt , class _Pr >
void cliext::_XMedian (_RanIt _First, _RanIt _Mid, _RanIt _Last, _Pr _Pred)
 
template<class _RanIt , class _Pr >
 cliext::_PAIR_TYPE (_RanIt) _XUnguarded_partition(_RanIt _First
 
template<class _RanIt , class _Diff , class _Pr >
void cliext::_XSort (_RanIt _First, _RanIt _Last, _Diff _Ideal, _Pr _Pred)
 
template<class _RanIt , class _Pr >
void cliext::sort_unchecked (_RanIt _First, _RanIt _Last, _Pr _Pred)
 
template<class _RanIt , class _Pr >
void cliext::sort (_RanIt _First, _RanIt _Last, _Pr _Pred)
 
template<class _BidIt , class _OutIt , class _Diff >
void cliext::_XChunked_merge (_BidIt _First, _BidIt _Last, _OutIt _Dest, _Diff _Chunk, _Diff _Count)
 
template<class _BidIt , class _Diff , class _Ty >
void cliext::_XBuffered_merge_sort (_BidIt _First, _BidIt _Last, _Diff _Count, _Temp_iterator< _Ty > _Tempbuf)
 
template<class _BidIt , class _Diff , class _Ty >
void cliext::_XStable_sort (_BidIt _First, _BidIt _Last, _Diff _Count, _Temp_iterator< _Ty > _Tempbuf)
 
template<class _BidIt >
void cliext::stable_sort_unchecked (_BidIt _First, _BidIt _Last)
 
template<class _BidIt >
void cliext::stable_sort (_BidIt _First, _BidIt _Last)
 
template<class _BidIt , class _OutIt , class _Diff , class _Pr >
void cliext::_XChunked_merge (_BidIt _First, _BidIt _Last, _OutIt _Dest, _Diff _Chunk, _Diff _Count, _Pr _Pred)
 
template<class _BidIt , class _Diff , class _Ty , class _Pr >
void cliext::_XBuffered_merge_sort (_BidIt _First, _BidIt _Last, _Diff _Count, _Temp_iterator< _Ty > _Tempbuf, _Pr _Pred)
 
template<class _BidIt , class _Diff , class _Ty , class _Pr >
void cliext::_XStable_sort (_BidIt _First, _BidIt _Last, _Diff _Count, _Temp_iterator< _Ty > _Tempbuf, _Pr _Pred)
 
template<class _BidIt , class _Pr >
void cliext::stable_sort_unchecked (_BidIt _First, _BidIt _Last, _Pr _Pred)
 
template<class _BidIt , class _Pr >
void cliext::stable_sort (_BidIt _First, _BidIt _Last, _Pr _Pred)
 
template<class _RanIt >
void cliext::partial_sort_unchecked (_RanIt _First, _RanIt _Mid, _RanIt _Last)
 
template<class _RanIt >
void cliext::partial_sort (_RanIt _First, _RanIt _Mid, _RanIt _Last)
 
template<class _RanIt , class _Pr >
void cliext::partial_sort_unchecked (_RanIt _First, _RanIt _Mid, _RanIt _Last, _Pr _Pred)
 
template<class _RanIt , class _Pr >
void cliext::partial_sort (_RanIt _First, _RanIt _Mid, _RanIt _Last, _Pr _Pred)
 
template<class _InIt , class _RanIt >
_RanIt cliext::partial_sort_copy_unchecked (_InIt _First1, _InIt _Last1, _RanIt _First2, _RanIt _Last2)
 
template<class _InIt , class _RanIt >
_RanIt cliext::partial_sort_copy (_InIt _First1, _InIt _Last1, _RanIt _First2, _RanIt _Last2)
 
template<class _InIt , class _RanIt , class _Pr >
_RanIt cliext::partial_sort_copy_unchecked (_InIt _First1, _InIt _Last1, _RanIt _First2, _RanIt _Last2, _Pr _Pred)
 
template<class _InIt , class _RanIt , class _Pr >
_RanIt cliext::partial_sort_copy (_InIt _First1, _InIt _Last1, _RanIt _First2, _RanIt _Last2, _Pr _Pred)
 
template<class _RanIt >
void cliext::nth_element_unchecked (_RanIt _First, _RanIt _Nth, _RanIt _Last)
 
template<class _RanIt >
void cliext::nth_element (_RanIt _First, _RanIt _Nth, _RanIt _Last)
 
template<class _RanIt , class _Pr >
void cliext::nth_element_unchecked (_RanIt _First, _RanIt _Nth, _RanIt _Last, _Pr _Pred)
 
template<class _RanIt , class _Pr >
void cliext::nth_element (_RanIt _First, _RanIt _Nth, _RanIt _Last, _Pr _Pred)
 
template<class _InIt1 , class _InIt2 >
bool cliext::includes_unchecked (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2)
 
template<class _InIt1 , class _InIt2 >
bool cliext::includes (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2)
 
template<class _InIt1 , class _InIt2 , class _Pr >
bool cliext::includes_unchecked (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _Pr _Pred)
 
template<class _InIt1 , class _InIt2 , class _Pr >
bool cliext::includes (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _Pr _Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt cliext::set_union_unchecked (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
 
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt cliext::set_union (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt cliext::set_union_unchecked (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt cliext::set_union (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt cliext::set_intersection_unchecked (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
 
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt cliext::set_intersection (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt cliext::set_intersection_unchecked (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt cliext::set_intersection (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt cliext::set_difference_unchecked (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
 
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt cliext::set_difference (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt cliext::set_difference_unchecked (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt cliext::set_difference (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt cliext::set_symmetric_difference_unchecked (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
 
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt cliext::set_symmetric_difference (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt cliext::set_symmetric_difference_unchecked (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
 
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt cliext::set_symmetric_difference (_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
 
template<class _FwdIt >
_FwdIt cliext::max_element_unchecked (_FwdIt _First, _FwdIt _Last)
 
template<class _FwdIt >
_FwdIt cliext::max_element (_FwdIt _First, _FwdIt _Last)
 
template<class _FwdIt , class _Pr >
_FwdIt cliext::max_element_unchecked (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _FwdIt , class _Pr >
_FwdIt cliext::max_element (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _FwdIt >
_FwdIt cliext::min_element_unchecked (_FwdIt _First, _FwdIt _Last)
 
template<class _FwdIt >
_FwdIt cliext::min_element (_FwdIt _First, _FwdIt _Last)
 
template<class _FwdIt , class _Pr >
_FwdIt cliext::min_element_unchecked (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _FwdIt , class _Pr >
_FwdIt cliext::min_element (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _BidIt >
bool cliext::next_permutation_unchecked (_BidIt _First, _BidIt _Last)
 
template<class _BidIt >
bool cliext::next_permutation (_BidIt _First, _BidIt _Last)
 
template<class _BidIt , class _Pr >
bool cliext::next_permutation_unchecked (_BidIt _First, _BidIt _Last, _Pr _Pred)
 
template<class _BidIt , class _Pr >
bool cliext::next_permutation (_BidIt _First, _BidIt _Last, _Pr _Pred)
 
template<class _BidIt >
bool cliext::prev_permutation_unchecked (_BidIt _First, _BidIt _Last)
 
template<class _BidIt >
bool cliext::prev_permutation (_BidIt _First, _BidIt _Last)
 
template<class _BidIt , class _Pr >
bool cliext::prev_permutation_unchecked (_BidIt _First, _BidIt _Last, _Pr _Pred)
 
template<class _BidIt , class _Pr >
bool cliext::prev_permutation (_BidIt _First, _BidIt _Last, _Pr _Pred)
 

Variables

_STD_BEGIN const int _ISORT_MAX = 32
 
constexpr const _Ty &() _Left
 
constexpr const _Ty &() _Right
 
constexpr const _Ty &() _Right
 
constexpr const _Ty &() _Left
 
_FwdIt cliext::_Last
 
_FwdIt const _Ty cliext::_Val
 
_Diff cliext::_Count = 0
 
_FwdIt const _Ty _Pr cliext::_Pred
 
_RanIt cliext::_Pfirst = _Mid
 
_RanIt cliext::_Plast = _Pfirst + 1
 
_RanIt cliext::_Gfirst = _Plast
 
_RanIt cliext::_Glast = _Pfirst
 

Macro Definition Documentation

#define _ALGORITHM_
#define _CLI_ALGORITHM_
#define _DEBUG_HEAP_PRED (   first,
  last,
  pred 
)
#define _STLCLRDB_HEAP (   first,
  last 
)
#define _STLCLRDB_HEAP_PRED (   first,
  last,
  pred 
)

Function Documentation

template<class _FwdIt , class _Pr >
_FwdIt _Adjacent_find_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_Pr &  _Pred 
)
inline
106  { // find first matching successor
107  for (_FwdIt _Firstb; (_Firstb = _First) != _Last && ++_First != _Last; )
108  if (*_Firstb == *_First)
109  return (_Firstb);
110  return (_Last);
111  }
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _Pr >
bool _All_of_unchecked ( _InIt  _First,
_InIt  _Last,
_Pr &  _Pred 
)
inline
307  { // enough room, look for a match
308  if (*_First1 == _Val)
309  { // found part of possible match, check it out
_In_ int _Val
Definition: vcruntime_string.h:62
template<class _InIt , class _Pr >
bool _Any_of_unchecked ( _InIt  _First,
_InIt  _Last,
_Pr &  _Pred 
)
inline
327  { // no match, take big jump and back up as needed
328  _Oldfirst1 = _First1 + 1;
template<class _FwdIt , class _Ty , class _Pr >
bool _Binary_search_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val,
_Pr &  _Pred 
)
inline
2325  { // merge [_First, _Mid) with [_Mid, _Last), using operator<
template<class _BidIt1 , class _BidIt2 , class _BidIt3 , class _Pr >
_BidIt3 _Buffered_merge_backward_unchecked ( _BidIt1  _First1,
_BidIt1  _Last1,
_BidIt2  _First2,
_BidIt2  _Last2,
_BidIt3  _Dest,
_Pr &  _Pred,
bool  _In_place = false 
)
inline
2489  { // merge [_First, _Mid) with [_Mid, _Last), using _Pred
2492 
2493  if (_First != _Mid && _Mid != _Last)
2494  { // merge nontrivial sequence
2495  _Diff _Count1 = 0;
2496  _Iter_distance(_First, _Mid, _Count1);
2497  _Diff _Count2 = 0;
2498  _Iter_distance(_Mid, _Last, _Count2);
2499  _TEMP_ITER(_BidIt, _Ty)
2500  _Tempbuf(_Count1 < _Count2 ? _Count1 : _Count2);
2501  cliext::_XBuffered_merge(_First, _Mid, _Last,
2502  _Count1, _Count2, _Tempbuf, _Pred);
2503  }
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _TEMP_ITER(iter_t, value_t)
Definition: memory:244
Definition: xutility:618
_Iter_distance(_First, _Last, _Count)
void _XBuffered_merge(_BidIt _First, _BidIt _Mid, _BidIt _Last, _Diff _Count1, _Diff _Count2, _Temp_iterator< _Ty > _Tempbuf, _Pr _Pred)
Definition: algorithm:2375
Definition: adapter:7
_FwdIt _Last
Definition: algorithm:1936
template<class _BidIt , class _Diff , class _Ty , class _Pr >
void _Buffered_merge_sort_unchecked ( _BidIt  _First,
_BidIt  _Last,
_Diff  _Count,
_Temp_iterator< _Ty > &  _Tempbuf,
_Pr &  _Pred 
)
inline
2832  { // order [_First, _Last), using _Pred
2833  _STLCLRDB_RANGE(_First, _Last);
2836  }
2837 
2838  // TEMPLATE FUNCTION stable_sort
2839 template<class _BidIt,
2840  class _OutIt,
2841  class _Diff> inline
2842  void _XChunked_merge(_BidIt _First, _BidIt _Last, _OutIt _Dest,
2843  _Diff _Chunk, _Diff _Count)
2844  { // copy merging chunks, using operator<
2845  for (_Diff _Chunk2 = _Chunk * 2; _Chunk2 <= _Count; _Count -= _Chunk2)
2846  { // copy merging pairs of adjacent chunks
2847  _BidIt _Mid1 = _First;
2848  cliext::advance(_Mid1, _Chunk);
2849  _BidIt _Mid2 = _Mid1;
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
unsigned int _Count
Definition: xcomplex:668
#define _STLCLRDB_POINTER(first)
Definition: memory:221
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
void _XChunked_merge(_BidIt _First, _BidIt _Last, _OutIt _Dest, _Diff _Chunk, _Diff _Count, _Pr _Pred)
Definition: algorithm:3017
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
void sort_unchecked(_RanIt _First, _RanIt _Last)
Definition: algorithm:2661
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Buffered_merge_unchecked ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest,
_Pr &  _Pred,
bool  _In_place = false 
)
inline
2510  { // merge [_First, _Mid) with [_Mid, _Last), using _Pred
2511  _STLCLRDB_ORDER_PRED(_First, _Mid, _Pred);
2514  _Unchecked(_First), _Unchecked(_Mid), _Unchecked(_Last), _Pred);
2515  }
2516 
2517  // TEMPLATE FUNCTION sort
2518 template<class _BidIt> inline
2519  void _XInsertion_sort(_BidIt _First, _BidIt _Last)
2520  { // insertion sort [_First, _Last), using operator<
2522 
2523  if (_First != _Last)
2524  for (_BidIt _Next = _First; ++_Next != _Last; )
2525  { // order next element
2526  _BidIt _Next1 = _Next;
2527  _Ty _Val = *_Next;
2528 
2529  if (_STLCLRDB_LT(_Val, *_First))
2530  { // found new earliest element, move to front
2531  cliext::copy_backward_unchecked(_First, _Next, ++_Next1);
2532  *_First = _Val;
2533  }
2534  else
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT(left, right)
Definition: memory:218
_In_ int _Val
Definition: vcruntime_string.h:62
void inplace_merge_unchecked(_BidIt _First, _BidIt _Mid, _BidIt _Last)
Definition: algorithm:2324
Definition: xutility:618
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_ORDER_PRED(first, last, pred)
Definition: memory:224
_BidIt2 copy_backward_unchecked(_BidIt1 _First, _BidIt1 _Last, _BidIt2 _Dest)
Definition: memory:514
void _XInsertion_sort(_BidIt _First, _BidIt _Last, _Pr _Pred)
Definition: algorithm:2676
_FwdIt _Last
Definition: algorithm:1936
template<class _BidIt , class _Diff , class _Ty , class _Pr >
void _Buffered_merge_unchecked ( _BidIt  _First,
_BidIt  _Mid,
_BidIt  _Last,
_Diff  _Count1,
_Diff  _Count2,
_Temp_iterator< _Ty > &  _Tempbuf,
_Pr &  _Pred 
)
inline
2547  { // sort median of three elements to middle
2548  if (_STLCLRDB_LT(*_Mid, *_First))
2549  cliext::iter_swap(_Mid, _First);
2550  if (_STLCLRDB_LT(*_Last, *_Mid))
2551  cliext::iter_swap(_Last, _Mid);
2552  if (_STLCLRDB_LT(*_Mid, *_First))
2553  cliext::iter_swap(_Mid, _First);
2554  }
2555 
2556 template<class _RanIt> inline
2557  void _XMedian(_RanIt _First, _RanIt _Mid, _RanIt _Last)
2558  { // sort median element to middle
2559  if (40 < _Last - _First)
2560  { // median of nine
2561  int _Step = (int)(_Last - _First + 1) / 8;
2562  cliext::_XMed3(_First, _First + _Step, _First + 2 * _Step);
2563  cliext::_XMed3(_Mid - _Step, _Mid, _Mid + _Step);
2564  cliext::_XMed3(_Last - 2 * _Step, _Last - _Step, _Last);
2565  cliext::_XMed3(_First + _Step, _Mid, _Last - _Step);
2566  }
2567  else
2568  cliext::_XMed3(_First, _Mid, _Last);
2569  }
2570 
2571 template<class _RanIt> inline
2572  _PAIR_TYPE(_RanIt) _XUnguarded_partition(_RanIt _First, _RanIt _Last)
2573  { // partition [_First, _Last), using operator<
2574  _RanIt _Mid = _First + (_Last - _First) / 2; // sort median to _Mid
2575  cliext::_XMedian(_First, _Mid, _Last - 1);
2576  _RanIt _Pfirst = _Mid;
2577  _RanIt _Plast = _Pfirst + 1;
2578 
2579  while (_First < _Pfirst
2580  && !_STLCLRDB_LT(*(_Pfirst - 1), *_Pfirst)
2581  && !(*_Pfirst < *(_Pfirst - 1)))
2582  --_Pfirst;
2583  while (_Plast < _Last
2584  && !_STLCLRDB_LT(*_Plast, *_Pfirst)
2585  && !(*_Pfirst < *_Plast))
2586  ++_Plast;
2587 
2588  _RanIt _Gfirst = _Plast;
2589  _RanIt _Glast = _Pfirst;
2590 
#define _STLCLRDB_LT(left, right)
Definition: memory:218
_RanIt _Plast
Definition: algorithm:2577
#define _PAIR_TYPE(iter_t)
Definition: memory:31
_RanIt _Pfirst
Definition: algorithm:2576
_RanIt _Glast
Definition: algorithm:2589
unsigned int
Definition: vccorlib.h:2468
void _XMedian(_RanIt _First, _RanIt _Mid, _RanIt _Last, _Pr _Pred)
Definition: algorithm:2716
_RanIt _Gfirst
Definition: algorithm:2588
void _XMedian(_RanIt _First, _RanIt _Mid, _RanIt _Last)
Definition: algorithm:2557
void iter_swap(_FwdIt1 _Left, _FwdIt2 _Right)
Definition: algorithm:573
_FwdIt _Last
Definition: algorithm:1936
void _XMed3(_RanIt _First, _RanIt _Mid, _RanIt _Last)
Definition: algorithm:2546
template<class _BidIt , class _Diff , class _Ty >
_BidIt _Buffered_rotate_unchecked ( _BidIt  _First,
_BidIt  _Mid,
_BidIt  _Last,
_Diff  _Count1,
_Diff  _Count2,
_Temp_iterator< _Ty > &  _Tempbuf 
)
inline
1869  { // find first element that _Val is before, using operator<
1871 
1872  _Diff _Count = 0;
1873  _Iter_distance(_First, _Last, _Count);
1874  for (; 0 < _Count; )
1875  { // divide and conquer, find half that contains answer
1876  _Diff _Count2 = _Count / 2;
1877  _FwdIt _Mid = _First;
1878  cliext::advance(_Mid, _Count2);
1879 
1880  if (!_STLCLRDB_LT(_Val, *_Mid))
1881  _First = ++_Mid, _Count -= _Count2 + 1;
1882  else
1883  _Count = _Count2;
1884  }
1885  return (_First);
1886  }
1887 
1888 template<class _FwdIt,
1889  class _Ty> inline
1890  _FwdIt upper_bound(_FwdIt _First, _FwdIt _Last, const _Ty% _Val)
1891  { // find first element that _Val is before, using operator<
1892  _STLCLRDB_ORDER(_First, _Last);
1894  _Unchecked(_First), _Unchecked(_Last), _Val));
#define _STLCLRDB_ORDER(first, last)
Definition: memory:223
unsigned int _Count
Definition: xcomplex:668
#define _STLCLRDB_LT(left, right)
Definition: memory:218
_In_ int _Val
Definition: vcruntime_string.h:62
_FwdIt upper_bound(_FwdIt _First, _FwdIt _Last, const _Ty &_Val, _Pr _Pred)
Definition: algorithm:2239
Definition: xutility:618
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
_Iter_distance(_First, _Last, _Count)
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
_FwdIt upper_bound_unchecked(_FwdIt _First, _FwdIt _Last, const _Ty%_Val)
Definition: algorithm:1867
_FwdIt _Last
Definition: algorithm:1936
template<class _BidIt , class _OutIt , class _Diff , class _Pr >
void _Chunked_merge_unchecked ( _BidIt  _First,
_BidIt  _Last,
_OutIt  _Dest,
_Diff  _Chunk,
_Diff  _Count,
_Pr &  _Pred 
)
inline
2802  { // loop on second half
2803  cliext::_XSort(_First, _Mid.first, _Ideal, _Pred);
2804  _First = _Mid.second;
2805  }
2806  else
2807  { // loop on first half
2808  cliext::_XSort(_Mid.second, _Last, _Ideal, _Pred);
2809  _Last = _Mid.first;
2810  }
2811  }
2812 
2813  if (_ISort::_Max < _Count)
2814  { // heap sort if too many divisions
2817  }
2818  else if (1 < _Count)
2819  cliext::_XInsertion_sort(_First, _Last, _Pred); // small
2820  }
2821 
2822 template<class _RanIt,
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
unsigned int _Count
Definition: xcomplex:668
void make_heap_unchecked(_RanIt _First, _RanIt _Last)
Definition: algorithm:1702
void sort_heap_unchecked(_RanIt _First, _RanIt _Last)
Definition: algorithm:1760
void _XSort(_RanIt _First, _RanIt _Last, _Diff _Ideal)
Definition: algorithm:2630
void _XInsertion_sort(_BidIt _First, _BidIt _Last)
Definition: algorithm:2519
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _OutIt , class _Pr >
_OutIt _Copy_if_no_deprecate ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Pr &  _Pred 
)
inline
407  { // no match, take big jump and back up as needed
template<class _InIt , class _OutIt , class _Pr >
_OutIt _Copy_if_unchecked ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Pr &  _Pred 
)
inline
381  { // find first _Count * _Val satisfying _Pred, random-access iterators
382  if (_Count <= 0)
383  return (_First1);
384 
385  _FwdIt1 _Oldfirst1 = _First1;
386  for (; _Count <= _Last1 - _Oldfirst1; )
387  { // enough room, look for a match
388  if (_Pred(*_First1, _Val))
389  { // found part of possible match, check it out
390  _Diff2 _Count1 = _Count;
391  _FwdIt1 _Mid1 = _First1;
392 
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
unsigned int _Count
Definition: xcomplex:668
_In_ int _Val
Definition: vcruntime_string.h:62
template<class _InIt , class _Pr >
iterator_traits<_InIt>::difference_type _Count_if_unchecked ( _InIt  _First,
_InIt  _Last,
_Pr &  _Pred 
)
inline
135  { // find first satisfying _Pred with successor
136  _STLCLRDB_RANGE(_First, _Last);
139  _Unchecked(_First), _Unchecked(_Last), _Pred));
140  }
141 
142  // TEMPLATE FUNCTION count
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_POINTER(first)
Definition: memory:221
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
_FwdIt adjacent_find_unchecked(_FwdIt _First, _FwdIt _Last)
Definition: algorithm:105
template<class _FwdIt , class _Ty , class _Pr >
pair<_FwdIt, _FwdIt> _Equal_range_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val,
_Pr &  _Pred 
)
inline
2273  { // merge [_First, _Mid) with [_Mid, _Last), using operator<
2274  if (_Count1 + _Count2 == 2)
2275  { // order two one-element partitions
2276  if (_STLCLRDB_LT(*_Mid, *_First))
2277  cliext::iter_swap(_First, _Mid);
2278  }
2279  else if (_Count1 <= _Count2 && _Count1 <= _Tempbuf._Maxlen())
2280  { // buffer left partition, then merge
2281  cliext::copy_unchecked(_First, _Mid, _Tempbuf._Init());
2282  cliext::merge_unchecked(_Tempbuf._First(), _Tempbuf._Last(),
2283  _Mid, _Last, _First);
2284  }
2285  else if (_Count2 <= _Tempbuf._Maxlen())
2286  { // buffer right partition, then merge
2287  cliext::copy_unchecked(_Mid, _Last, _Tempbuf._Init());
2288  cliext::_XMerge_backward(_First, _Mid,
_OutIt merge_unchecked(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
Definition: algorithm:2073
#define _STLCLRDB_LT(left, right)
Definition: memory:218
void iter_swap(_FwdIt1 _Left, _FwdIt2 _Right)
Definition: algorithm:573
_OutIt copy_unchecked(_InIt _First, _InIt _Last, _OutIt _Dest)
Definition: memory:490
_BidIt3 _XMerge_backward(_BidIt1 _First1, _BidIt1 _Last1, _BidIt2 _First2, _BidIt2 _Last2, _BidIt3 _Dest)
Definition: algorithm:2197
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 _Find_end_unchecked ( _FwdIt1  _First1,
_FwdIt1  _Last1,
_FwdIt2  _First2,
_FwdIt2  _Last2,
_Pr &  _Pred 
)
inline
764  { // replace [_First, _Last) with _Func()
765  _STLCLRDB_RANGE(_First, _Last);
766  _STLCLRDB_POINTER(_Func);
768  }
769 
770  // TEMPLATE FUNCTION generate_n
771 template<class _OutIt,
772  class _Diff,
773  class _Fn0> inline
774  void generate_n_unchecked(_OutIt _Dest, _Diff _Count, _Fn0 _Func)
775  { // replace [_Dest, _Dest + _Count) with _Func()
776  for (; 0 < _Count; --_Count, ++_Dest)
777  *_Dest = _Func();
778  }
779 
780 template<class _OutIt,
781  class _Diff,
782  class _Fn0> inline
783  void generate_n(_OutIt _Dest, _Diff _Count, _Fn0 _Func)
784  { // replace [_Dest, _Dest + _Count) with _Func()
785  _STLCLRDB_POINTER(_Dest);
786  _STLCLRDB_POINTER(_Func);
787  cliext::generate_n_unchecked(_Unchecked(_Dest), _Count, _Func);
unsigned int _Count
Definition: xcomplex:668
void generate_unchecked(_FwdIt _First, _FwdIt _Last, _Fn0 _Func)
Definition: algorithm:755
_OutIt generate_n(_OutIt _Dest, _Diff _Count, _Fn0 _Func)
Definition: algorithm:1329
#define _STLCLRDB_POINTER(first)
Definition: memory:221
void generate_n_unchecked(_OutIt _Dest, _Diff _Count, _Fn0 _Func)
Definition: algorithm:774
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 _Find_first_of_unchecked ( _FwdIt1  _First1,
_FwdIt1  _Last1,
_FwdIt2  _First2,
_FwdIt2  _Last2,
_Pr &  _Pred 
)
inline
822  { // copy omitting each element satisfying _Pred
823  for (; _First != _Last; ++_First)
824  if (!_Pred(*_First))
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _Pr >
_InIt _Find_if_not_unchecked ( _InIt  _First,
_InIt  _Last,
_Pr &  _Pred 
)
inline
381  { // find first _Count * _Val satisfying _Pred, random-access iterators
template<class _InIt , class _Pr >
_InIt _Find_if_unchecked ( _InIt  _First,
_InIt  _Last,
_Pr &  _Pred 
)
inline
86  { // find first satisfying _Pred
87  for (; _First != _Last; ++_First)
88  if (_Pred(*_First))
89  break;
90  return (_First);
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _Fn1 >
void _For_each_unchecked ( _InIt  _First,
_InIt  _Last,
_Fn1 &  _Func 
)
inline
69  : _First);
70  }
template<class _OutIt , class _Diff , class _Fn0 >
_OutIt _Generate_n_unchecked ( _OutIt  _Dest,
_Diff  _Count,
_Fn0 &  _Func 
)
inline
1325  { // move elements satisfying _Pred to beginning of sequence
template<class _FwdIt , class _Fn0 >
void _Generate_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_Fn0 &  _Func 
)
inline
1304  { // move elements satisfying _Pred to beginning of sequence
1305  for (; ; ++_First)
template<class _RanIt , class _Pr >
void _Guess_median_unchecked ( _RanIt  _First,
_RanIt  _Mid,
_RanIt  _Last,
_Pr &  _Pred 
)
inline
2668  { // order [_First, _Last), using operator<
2669  _STLCLRDB_RANGE(_First, _Last);
2671  }
2672 
2673  // TEMPLATE FUNCTION sort WITH PRED
2674 template<class _BidIt,
2675  class _Pr> inline
2676  void _XInsertion_sort(_BidIt _First, _BidIt _Last, _Pr _Pred)
2677  { // insertion sort [_First, _Last), using _Pred
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
Definition: xutility:618
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
void sort_unchecked(_RanIt _First, _RanIt _Last)
Definition: algorithm:2661
void _XInsertion_sort(_BidIt _First, _BidIt _Last, _Pr _Pred)
Definition: algorithm:2676
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt1 , class _InIt2 , class _Pr >
bool _Includes_unchecked ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_Pr &  _Pred 
)
inline
3051  { // sort using temp buffer for merges, using _Pred
3052  _BidIt _Mid = _First;
3053  for (_Diff _Nleft = _Count; _ISort::_Max <= _Nleft; _Nleft -= _ISort::_Max)
3054  { // sort chunks
3055  _BidIt _Midn = _Mid;
3056  cliext::advance(_Midn, (int)_ISort::_Max);
unsigned int _Count
Definition: xcomplex:668
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
template<class _BidIt , class _Pr >
void _Inplace_merge_unchecked ( _BidIt  _First,
_BidIt  _Mid,
_BidIt  _Last,
_Pr &  _Pred 
)
inline
template<class _BidIt , class _Pr >
void _Insertion_sort_unchecked ( _BidIt  _First,
_BidIt  _Last,
_Pr &  _Pred 
)
inline
2631  { // order [_First, _Last), using operator<
2632  _Diff _Count;
2633  for (; _ISort::_Max < (_Count = _Last - _First) && 0 < _Ideal; )
2634  { // divide and conquer by quicksort
2635  _PAIR_TYPE(_RanIt) _Mid =
2636  cliext::_XUnguarded_partition(_First, _Last);
2637  _Ideal /= 2, _Ideal += _Ideal / 2; // allow 1.5 log2(N) divisions
2638 
2639  if (_Mid.first - _First < _Last - _Mid.second)
2640  { // loop on second half
2641  cliext::_XSort(_First, _Mid.first, _Ideal);
2642  _First = _Mid.second;
2643  }
2644  else
2645  { // loop on first half
2646  cliext::_XSort(_Mid.second, _Last, _Ideal);
2647  _Last = _Mid.first;
2648  }
unsigned int _Count
Definition: xcomplex:668
#define _PAIR_TYPE(iter_t)
Definition: memory:31
if(__pUnknown!=*__ppTargetUnknown)
Definition: vccorlib.h:399
void _XSort(_RanIt _First, _RanIt _Last, _Diff _Ideal)
Definition: algorithm:2630
Definition: adapter:7
_FwdIt _Last
Definition: algorithm:1936
template<class _RanIt , class _Pr >
_RanIt _Is_heap_until_unchecked ( _RanIt  _First,
_RanIt  _Last,
_Pr &  _Pred 
)
inline
3797  { // find smallest element, using _Pred
3798  _STLCLRDB_RANGE(_First, _Last);
3801  _Unchecked(_First), _Unchecked(_Last), _Pred));
3802  }
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_POINTER(first)
Definition: memory:221
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt min_element_unchecked(_FwdIt _First, _FwdIt _Last)
Definition: algorithm:3763
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _Pr >
bool _Is_partitioned_unchecked ( _InIt  _First,
_InIt  _Last,
_Pr &  _Pred 
)
inline
534  { // look for one of [_First2, _Last2) that matches element
535  _STLCLRDB_RANGE(_First1, _Last1);
536  _STLCLRDB_RANGE(_First2, _Last2);
538  _Unchecked(_First1), _Unchecked(_Last1),
539  _Unchecked(_First2), _Unchecked(_Last2)));
540  }
541 
542  // TEMPLATE FUNCTION find_first_of WITH PRED
543 template<class _FwdIt1,
_FwdIt1 find_first_of_unchecked(_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2)
Definition: algorithm:520
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
template<class _FwdIt , class _Pr >
_FwdIt _Is_sorted_until_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_Pr &  _Pred 
)
inline
3845  { // permute and test for pure ascending, using _Pred
template<class _FwdIt , class _Ty , class _Pr >
_FwdIt _Lower_bound_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val,
_Pr &  _Pred 
)
inline
2170  { // rotate [_First, _Last) using temp buffer
2171  if (_Count1 <= _Count2 && _Count1 <= _Tempbuf._Maxlen())
2172  { // buffer left partition, then copy parts
2173  cliext::copy_unchecked(_First, _Mid, _Tempbuf._Init());
2174  cliext::copy_unchecked(_Mid, _Last, _First);
2176  _Tempbuf._First(), _Tempbuf._Last(), _Last));
2177  }
2178  else if (_Count2 <= _Tempbuf._Maxlen())
2179  { // buffer right partition, then copy parts
2180  cliext::copy_unchecked(_Mid, _Last, _Tempbuf._Init());
2181  cliext::copy_backward_unchecked(_First, _Mid, _Last);
2182  return (cliext::copy_unchecked(
2183  _Tempbuf._First(), _Tempbuf._Last(), _First));
2184  }
2185  else
2186  { // buffer too small, rotate in place
2187  cliext::rotate_unchecked(_First, _Mid, _Last);
2188  cliext::advance(_First, _Count2);
void rotate_unchecked(_FwdIt _First, _FwdIt _Mid, _FwdIt _Last)
Definition: algorithm:1193
_BidIt2 copy_backward_unchecked(_BidIt1 _First, _BidIt1 _Last, _BidIt2 _Dest)
Definition: memory:514
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
_OutIt copy_unchecked(_InIt _First, _InIt _Last, _OutIt _Dest)
Definition: memory:490
_FwdIt _Last
Definition: algorithm:1936
template<class _RanIt , class _Pr >
void _Make_heap_unchecked ( _RanIt  _First,
_RanIt  _Last,
_Pr &  _Pred 
)
inline
2108  { // copy merging ranges, both using _Pred
2109  for (; _First1 != _Last1 && _First2 != _Last2; ++_Dest)
2110  if (_STLCLRDB_LT_PRED(_Pred, *_First2, *_First1))
2111  *_Dest = *_First2, ++_First2;
2112  else
2113  *_Dest = *_First1, ++_First1;
2114 
2115  _Dest = cliext::copy_unchecked(_First1, _Last1, _Dest); // copy any tail
2116  return (cliext::copy_unchecked(_First2, _Last2, _Dest));
2117  }
2118 
2119 template<class _InIt1,
2120  class _InIt2,
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT_PRED(pred, left, right)
Definition: memory:219
_OutIt copy_unchecked(_InIt _First, _InIt _Last, _OutIt _Dest)
Definition: memory:490
template<class _FwdIt , class _Pr >
_FwdIt _Max_element_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_Pr &  _Pred 
)
inline
3481  { // OR sets [_First1, _Last1) and [_First2, _Last2), using operator<
template<class _RanIt , class _Pr >
void _Med3_unchecked ( _RanIt  _First,
_RanIt  _Mid,
_RanIt  _Last,
_Pr &  _Pred 
)
inline
2652  { // heap sort if too many divisions
2655  }
2656  else if (1 < _Count)
2657  cliext::_XInsertion_sort(_First, _Last); // small
2658  }
2659 
2660 template<class _RanIt> inline
2661  void sort_unchecked(_RanIt _First, _RanIt _Last)
2662  { // order [_First, _Last), using operator<
void sort_unchecked(_RanIt _First, _RanIt _Last, _Pr _Pred)
Definition: algorithm:2824
unsigned int _Count
Definition: xcomplex:668
void make_heap_unchecked(_RanIt _First, _RanIt _Last)
Definition: algorithm:1702
void sort_heap_unchecked(_RanIt _First, _RanIt _Last)
Definition: algorithm:1760
void _XInsertion_sort(_BidIt _First, _BidIt _Last)
Definition: algorithm:2519
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Merge_no_deprecate ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest,
_Pr &  _Pred 
)
inline
2410  { // right larger, cut it in half and partition left to match
2411  _Count1n = 0, _Count2n = _Count2 / 2;
2412  _Lastn = _Mid;
2413  cliext::advance(_Lastn, _Count2n);
2414  _Firstn = cliext::upper_bound_unchecked(_First, _Mid,
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
_FwdIt upper_bound_unchecked(_FwdIt _First, _FwdIt _Last, const _Ty%_Val)
Definition: algorithm:1867
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Merge_no_deprecate1 ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest,
_Pr &  _Pred,
input_iterator_tag  ,
input_iterator_tag  ,
_Any_tag   
)
inline
2378  { // merge [_First, _Mid) with [_Mid, _Last), using _Pred
2379  if (_Count1 + _Count2 == 2)
2380  { // order two one-element partitions
2381  if (_STLCLRDB_LT_PRED(_Pred, *_Mid, *_First))
2382  cliext::iter_swap(_First, _Mid);
2383  }
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT_PRED(pred, left, right)
Definition: memory:219
void iter_swap(_FwdIt1 _Left, _FwdIt2 _Right)
Definition: algorithm:573
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Merge_no_deprecate1 ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest,
_Pr &  _Pred,
random_access_iterator_tag  ,
random_access_iterator_tag  ,
random_access_iterator_tag   
)
inline
2391  { // buffer right partition, then merge
2392  cliext::copy_unchecked(_Mid, _Last, _Tempbuf._Init());
2393  cliext::_XMerge_backward(_First, _Mid,
2394  _Tempbuf._First(), _Tempbuf._Last(), _Last, _Pred);
2395  }
2396  else
2397  { // buffer too small, divide and conquer
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_OutIt copy_unchecked(_InIt _First, _InIt _Last, _OutIt _Dest)
Definition: memory:490
_BidIt3 _XMerge_backward(_BidIt1 _First1, _BidIt1 _Last1, _BidIt2 _First2, _BidIt2 _Last2, _BidIt3 _Dest)
Definition: algorithm:2197
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Merge_unchecked ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest,
_Pr &  _Pred 
)
inline
2359  { // merge backwards to _Dest, using _Pred
2360  for (; ; )
2361  if (_First1 == _Last1)
2362  return (cliext::copy_backward_unchecked(_First2, _Last2, _Dest));
2363  else if (_First2 == _Last2)
2364  return (cliext::copy_backward_unchecked(_First1, _Last1, _Dest));
2365  else if (_STLCLRDB_LT_PRED(_Pred, *--_Last2, *--_Last1))
2366  *--_Dest = *_Last1, ++_Last2;
2367  else
2368  *--_Dest = *_Last2, ++_Last1;
2369  }
2370 
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT_PRED(pred, left, right)
Definition: memory:219
_BidIt2 copy_backward_unchecked(_BidIt1 _First, _BidIt1 _Last, _BidIt2 _Dest)
Definition: memory:514
template<class _FwdIt , class _Pr >
_FwdIt _Min_element_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_Pr &  _Pred 
)
inline
3515  { // OR sets [_First1, _Last1) and [_First2, _Last2), using _Pred
template<class _FwdIt , class _Pr >
pair<_FwdIt, _FwdIt> _Minmax_element_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_Pr &  _Pred 
)
inline
3530  { // AND sets [_First1, _Last1) and [_First2, _Last2), using operator<
3531  for (; _First1 != _Last1 && _First2 != _Last2; )
3532  if (_STLCLRDB_LT(*_First1, *_First2))
3533  ++_First1;
3534  else if (*_First2 < *_First1)
3535  ++_First2;
3536  else
3537  *_Dest++ = *_First1++, ++_First2;
3538  return (_Dest);
3539  }
3540 
3541 template<class _InIt1,
3542  class _InIt2,
3543  class _OutIt> inline
3544  _OutIt set_intersection(_InIt1 _First1, _InIt1 _Last1,
3545  _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
3546  { // AND sets [_First1, _Last1) and [_First2, _Last2), using operator<
3547  _STLCLRDB_ORDER(_First1, _Last1);
3548  _STLCLRDB_ORDER(_First2, _Last2);
3549  _STLCLRDB_POINTER(_Dest);
3551  _Unchecked(_First1), _Unchecked(_Last1),
3552  _Unchecked(_First2), _Unchecked(_Last2), _Unchecked(_Dest)));
3553  }
3554 
3555  // TEMPLATE FUNCTION set_intersection WITH PRED
3556 template<class _InIt1,
3557  class _InIt2,
3558  class _OutIt,
3559  class _Pr> inline
3560  _OutIt set_intersection_unchecked(_InIt1 _First1, _InIt1 _Last1,
3561  _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
3562  { // AND sets [_First1, _Last1) and [_First2, _Last2), using _Pred
3563  for (; _First1 != _Last1 && _First2 != _Last2; )
3564  if (_STLCLRDB_LT_PRED(_Pred, *_First1, *_First2))
3565  ++_First1;
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT_PRED(pred, left, right)
Definition: memory:219
_OutIt set_intersection_unchecked(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
Definition: algorithm:3560
#define _STLCLRDB_ORDER(first, last)
Definition: memory:223
#define _STLCLRDB_LT(left, right)
Definition: memory:218
#define _STLCLRDB_POINTER(first)
Definition: memory:221
_OutIt set_intersection_unchecked(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
Definition: algorithm:3528
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
_OutIt set_intersection(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
Definition: algorithm:3218
template<class _InIt1 , class _InIt2 , class _Pr >
pair<_InIt1, _InIt2> _Mismatch_no_deprecate ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_Pr &  _Pred 
)
inline
196  { // find first [_First2, _Last2) match
199 
200  _Diff1 _Count1 = 0;
201  _Iter_distance(_First1, _Last1, _Count1);
202  _Diff2 _Count2 = 0;
203  _Iter_distance(_First2, _Last2, _Count2);
204 
Definition: xutility:618
_Iter_distance(_First, _Last, _Count)
template<class _InIt1 , class _InIt2 , class _Pr >
auto _Mismatch_no_deprecate1 ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_Pr &  _Pred,
input_iterator_tag  ,
input_iterator_tag   
) -> pair<_InIt1, decltype(_Unchecked_idl0(_First2))>
inline
template<class _InIt1 , class _InIt2 , class _Pr >
pair<_InIt1, _UNCHECKED_TYPE(_InIt2)> _Mismatch_no_deprecate1 ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_Pr &  _Pred,
random_access_iterator_tag  ,
random_access_iterator_tag   
)
inline
196  { // find first [_First2, _Last2) match
template<class _InIt1 , class _InIt2 , class _Pr >
pair<_InIt1, _InIt2> _Mismatch_unchecked ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_Pr &  _Pred 
)
inline
160  { // count elements that match _Val
161  _STLCLRDB_RANGE(_First, _Last);
163  _Val));
164  }
165 
166  // TEMPLATE FUNCTION count_if
167 template<class _InIt,
168  class _Pr> inline
_In_ int _Val
Definition: vcruntime_string.h:62
iterator_traits< _InIt >::difference_type count_unchecked(_InIt _First, _InIt _Last, const _Ty%_Val)
Definition: algorithm:146
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt1 , class _InIt2 , class _Pr >
pair<_InIt1, _InIt2> _Mismatch_unchecked ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_Pr &  _Pred 
)
inline
274  { // find first _Count * _Val match, forward iterators
template<class _BidIt , class _Pr >
bool _Next_permutation_unchecked ( _BidIt  _First,
_BidIt  _Last,
_Pr &  _Pred 
)
inline
3709  { // XOR sets [_First1, _Last1) and [_First2, _Last2), using _Pred
3710  _STLCLRDB_ORDER_PRED(_First1, _Last1, _Pred);
3711  _STLCLRDB_ORDER_PRED(_First2, _Last2, _Pred);
3712  _STLCLRDB_POINTER(_Dest);
3714  _Unchecked(_First1), _Unchecked(_Last1),
3715  _Unchecked(_First2), _Unchecked(_Last2), _Unchecked(_Dest), _Pred));
3716  }
3717 
3718  // TEMPLATE FUNCTION max_element
3719 template<class _FwdIt> inline
3720  _FwdIt max_element_unchecked(_FwdIt _First, _FwdIt _Last)
3721  { // find largest element, using operator<
3722  _FwdIt _Found = _First;
3723  if (_First != _Last)
3724  for (; ++_First != _Last; )
3725  if (_STLCLRDB_LT(*_Found, *_First))
3726  _Found = _First;
3727  return (_Found);
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT(left, right)
Definition: memory:218
#define _STLCLRDB_POINTER(first)
Definition: memory:221
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_ORDER_PRED(first, last, pred)
Definition: memory:224
_FwdIt max_element_unchecked(_FwdIt _First, _FwdIt _Last, _Pr _Pred)
Definition: algorithm:3741
_OutIt set_symmetric_difference_unchecked(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
Definition: algorithm:3656
_FwdIt _Last
Definition: algorithm:1936
const _Ty& _Right _NOEXCEPT_OP ( _NOEXCEPT_OP(_DEBUG_LT(_Left, _Right))  )
3610  { // take set [_First2, _Last2) from [_First1, _Last1), using operator<
3611  _STLCLRDB_ORDER(_First1, _Last1);
3612  _STLCLRDB_ORDER(_First2, _Last2);
3613  _STLCLRDB_POINTER(_Dest);
#define _STLCLRDB_ORDER(first, last)
Definition: memory:223
#define _STLCLRDB_POINTER(first)
Definition: memory:221
const _Ty& _Right _NOEXCEPT_OP ( _NOEXCEPT_OP(_DEBUG_LT(_Right, _Left))  )
3658  { // XOR sets [_First1, _Last1) and [_First2, _Last2), using operator<
template<class _InIt , class _Pr >
bool _None_of_unchecked ( _InIt  _First,
_InIt  _Last,
_Pr &  _Pred 
)
inline
353  { // find first _Count * _Val satisfying _Pred, forward iterators
template<class _RanIt , class _Pr >
void _Nth_element_unchecked ( _RanIt  _First,
_RanIt  _Nth,
_RanIt  _Last,
_Pr &  _Pred 
)
inline
3007  { // sort preserving order of equivalents, using operator<
3008  _STLCLRDB_RANGE(_First, _Last);
3010  }
3011 
3012  // TEMPLATE FUNCTION stable_sort WITH PRED
3013 template<class _BidIt,
3014  class _OutIt,
3015  class _Diff,
3016  class _Pr> inline
3017  void _XChunked_merge(_BidIt _First, _BidIt _Last, _OutIt _Dest,
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
void _XChunked_merge(_BidIt _First, _BidIt _Last, _OutIt _Dest, _Diff _Chunk, _Diff _Count, _Pr _Pred)
Definition: algorithm:3017
void stable_sort_unchecked(_BidIt _First, _BidIt _Last)
Definition: algorithm:2990
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _RanIt , class _Pr >
_RanIt _Partial_sort_copy_unchecked ( _InIt  _First1,
_InIt  _Last1,
_RanIt  _First2,
_RanIt  _Last2,
_Pr &  _Pred 
)
inline
2961  { // sort preserving order of equivalents, using operator<
2962  if (_Count <= _ISort::_Max)
2963  cliext::_XInsertion_sort(_First, _Last); // small
2964  else
2965  { // sort halves and merge
2966  _Diff _Count2 = (_Count + 1) / 2;
2967  _BidIt _Mid = _First;
2968  cliext::advance(_Mid, _Count2);
2969 
unsigned int _Count
Definition: xcomplex:668
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
void _XInsertion_sort(_BidIt _First, _BidIt _Last)
Definition: algorithm:2519
_FwdIt _Last
Definition: algorithm:1936
template<class _RanIt , class _Pr >
void _Partial_sort_unchecked ( _RanIt  _First,
_RanIt  _Mid,
_RanIt  _Last,
_Pr &  _Pred 
)
inline
2914  { // merge adjacent pairs of chunks to and from temp buffer
2915  cliext::_XChunked_merge(_First, _Last, _Tempbuf._Init(),
2916  _Chunk, _Count);
2917  cliext::_XChunked_merge(_Tempbuf._First(), _Tempbuf._Last(), _First,
2918  _Chunk *= 2, _Count);
2919  }
2920  }
2921 #endif // __cplusplus_cli
2922 
2923 template<class _BidIt,
2924  class _Diff,
2925  class _Ty> inline
2926  void _XStable_sort(_BidIt _First, _BidIt _Last, _Diff _Count,
unsigned int _Count
Definition: xcomplex:668
void _XStable_sort(_BidIt _First, _BidIt _Last, _Diff _Count, _Temp_iterator< _Ty > _Tempbuf, _Pr _Pred)
Definition: algorithm:3105
void _XChunked_merge(_BidIt _First, _BidIt _Last, _OutIt _Dest, _Diff _Chunk, _Diff _Count)
Definition: algorithm:2842
_FwdIt _Last
Definition: algorithm:1936
template<class _RanIt , class _Pr >
pair<_RanIt, _RanIt> _Partition_by_median_guess_unchecked ( _RanIt  _First,
_RanIt  _Last,
_Pr &  _Pred 
)
inline
2687  { // found new earliest element, move to front
2688  cliext::copy_backward_unchecked(_First, _Next, ++_Next1);
2689  *_First = _Val;
2690  }
2691  else
2692  { // look for insertion point after first
2693  for (_BidIt _First1 = _Next1;
2694  _STLCLRDB_LT_PRED(_Pred, _Val, *--_First1);
2695  _Next1 = _First1)
2696  *_Next1 = *_First1; // move hole down
2697  *_Next1 = _Val; // insert element in hole
2698  }
2699  }
2700  }
2701 
2702 template<class _RanIt,
2703  class _Pr> inline
2704  void _XMed3(_RanIt _First, _RanIt _Mid, _RanIt _Last, _Pr _Pred)
2705  { // sort median of three elements to middle
2706  if (_STLCLRDB_LT_PRED(_Pred, *_Mid, *_First))
2707  cliext::iter_swap(_Mid, _First);
2708  if (_STLCLRDB_LT_PRED(_Pred, *_Last, *_Mid))
2709  cliext::iter_swap(_Last, _Mid);
2710  if (_STLCLRDB_LT_PRED(_Pred, *_Mid, *_First))
2711  cliext::iter_swap(_Mid, _First);
2712  }
2713 
2714 template<class _RanIt,
2715  class _Pr> inline
2716  void _XMedian(_RanIt _First, _RanIt _Mid, _RanIt _Last, _Pr _Pred)
2717  { // sort median element to middle
2718  if (40 < _Last - _First)
2719  { // median of nine
2720  int _Step = (int)(_Last - _First + 1) / 8;
2721  cliext::_XMed3(_First, _First + _Step, _First + 2 * _Step, _Pred);
2722  cliext::_XMed3(_Mid - _Step, _Mid, _Mid + _Step, _Pred);
2723  cliext::_XMed3(_Last - 2 * _Step, _Last - _Step, _Last, _Pred);
2724  cliext::_XMed3(_First + _Step, _Mid, _Last - _Step, _Pred);
2725  }
2726  else
2727  cliext::_XMed3(_First, _Mid, _Last, _Pred);
2728  }
2729 
2730 template<class _RanIt,
2731  class _Pr> inline
2732  _PAIR_TYPE(_RanIt) _XUnguarded_partition(_RanIt _First, _RanIt _Last,
2733  _Pr _Pred)
2734  { // partition [_First, _Last), using _Pred
2735  _RanIt _Mid = _First + (_Last - _First) / 2;
2736  cliext::_XMedian(_First, _Mid, _Last - 1, _Pred);
2737  _RanIt _Pfirst = _Mid;
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT_PRED(pred, left, right)
Definition: memory:219
_In_ int _Val
Definition: vcruntime_string.h:62
#define _PAIR_TYPE(iter_t)
Definition: memory:31
_RanIt _Pfirst
Definition: algorithm:2576
unsigned int
Definition: vccorlib.h:2468
void _XMedian(_RanIt _First, _RanIt _Mid, _RanIt _Last, _Pr _Pred)
Definition: algorithm:2716
void _XMedian(_RanIt _First, _RanIt _Mid, _RanIt _Last)
Definition: algorithm:2557
void iter_swap(_FwdIt1 _Left, _FwdIt2 _Right)
Definition: algorithm:573
_BidIt2 copy_backward_unchecked(_BidIt1 _First, _BidIt1 _Last, _BidIt2 _Dest)
Definition: memory:514
void _XMed3(_RanIt _First, _RanIt _Mid, _RanIt _Last, _Pr _Pred)
Definition: algorithm:2704
_FwdIt _Last
Definition: algorithm:1936
void _XMed3(_RanIt _First, _RanIt _Mid, _RanIt _Last)
Definition: algorithm:2546
template<class _InIt , class _OutIt1 , class _OutIt2 , class _Pr >
pair<_OutIt1, _OutIt2> _Partition_copy_no_deprecate ( _InIt  _First,
_InIt  _Last,
_OutIt1  _Dest1,
_OutIt2  _Dest2,
_Pr &  _Pred 
)
inline
463  { // find last [_First2, _Last2) match
464  _STLCLRDB_RANGE(_First1, _Last1);
465  _STLCLRDB_RANGE(_First2, _Last2);
_FwdIt1 find_end_unchecked(_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2)
Definition: algorithm:431
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
template<class _InIt , class _OutIt1 , class _OutIt2 , class _Pr >
pair<_OutIt1, _OutIt2> _Partition_copy_unchecked ( _InIt  _First,
_InIt  _Last,
_OutIt1  _Dest1,
_OutIt2  _Dest2,
_Pr &  _Pred 
)
inline
445  { // room for match, try it
446  _FwdIt1 _Mid1 = _First1;
447  for (_FwdIt2 _Mid2 = _First2; ; ++_Mid1)
448  if (!(*_Mid1 == *_Mid2))
449  break;
450  else if (++_Mid2 == _Last2)
451  { // potential answer, save it
452  _Ans = _First1;
template<class _FwdIt , class _Pr >
_FwdIt _Partition_point_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_Pr &  _Pred 
)
inline
561  { // look for one of [_First2, _Last2) satisfying _Pred with element
562  _STLCLRDB_RANGE(_First1, _Last1);
563  _STLCLRDB_RANGE(_First2, _Last2);
566  _Unchecked(_First1), _Unchecked(_Last1),
567  _Unchecked(_First2), _Unchecked(_Last2), _Pred));
568  }
569 
570  // TEMPLATE FUNCTION iter_swap
571 template<class _FwdIt1,
572  class _FwdIt2> inline
573  void iter_swap(_FwdIt1 _Left, _FwdIt2 _Right)
574  { // swap *_Left and *_Right
575  cliext::swap(*_Left, *_Right);
576  }
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
constexpr const _Ty &() _Left
Definition: algorithm:3590
_FwdIt1 find_first_of_unchecked(_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2, _FwdIt2 _Last2)
Definition: algorithm:520
#define _STLCLRDB_POINTER(first)
Definition: memory:221
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
_STD_BEGIN void iter_swap(_FwdIt1 _Left, _FwdIt2 _Right)
Definition: utility:21
void swap(deque< _Value_t >%_Left, deque< _Value_t >%_Right)
Definition: deque:1660
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
constexpr const _Ty &() _Right
Definition: algorithm:3591
template<class _FwdIt , class _Pr >
_FwdIt _Partition_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_Pr &  _Pred,
forward_iterator_tag   
)
inline
1822  { // find first element not before _Val, using operator<
1823  _STLCLRDB_ORDER(_First, _Last);
1825  _Unchecked(_First), _Unchecked(_Last), _Val));
1826  }
1827 
1828  // TEMPLATE FUNCTION lower_bound WITH PRED
1829 template<class _FwdIt,
1830  class _Ty,
_FwdIt lower_bound_unchecked(_FwdIt _First, _FwdIt _Last, _Ty%_Val)
Definition: algorithm:1797
#define _STLCLRDB_ORDER(first, last)
Definition: memory:223
_In_ int _Val
Definition: vcruntime_string.h:62
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
_FwdIt _Last
Definition: algorithm:1936
template<class _BidIt , class _Pr >
_BidIt _Partition_unchecked ( _BidIt  _First,
_BidIt  _Last,
_Pr &  _Pred,
bidirectional_iterator_tag   
)
inline
1834  { // find first element not before _Val, using _Pred
1836 
1837  _Diff _Count = 0;
1838  _Iter_distance(_First, _Last, _Count);
1839  for (; 0 < _Count; )
1840  { // divide and conquer, find half that contains answer
1841  _Diff _Count2 = _Count / 2;
1842  _FwdIt _Mid = _First;
1843  cliext::advance(_Mid, _Count2);
1844 
1845  if (_STLCLRDB_LT_PRED(_Pred, *_Mid, _Val))
1846  _First = ++_Mid, _Count -= _Count2 + 1;
1847  else
1848  _Count = _Count2;
1849  }
1850  return (_First);
1851  }
1852 
1853 template<class _FwdIt,
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT_PRED(pred, left, right)
Definition: memory:219
unsigned int _Count
Definition: xcomplex:668
_In_ int _Val
Definition: vcruntime_string.h:62
Definition: xutility:618
_Iter_distance(_First, _Last, _Count)
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
_FwdIt _Last
Definition: algorithm:1936
template<class _RanIt , class _Diff , class _Ty , class _Pr >
void _Pop_heap_hole_by_index ( _RanIt  _First,
_Diff  _Hole,
_Diff  _Bottom,
_Ty &&  _Val,
_Pr &  _Pred 
)
inline
2041  { // test if _Val equivalent to some element, using operator<
2042  _STLCLRDB_ORDER(_First, _Last);
2044  _Unchecked(_First), _Unchecked(_Last), _Val));
2045  }
2046 
2047  // TEMPLATE FUNCTION binary_search WITH PRED
2048 template<class _FwdIt,
2049  class _Ty,
2050  class _Pr> inline
2051  bool binary_search_unchecked(_FwdIt _First, _FwdIt _Last,
2052  const _Ty% _Val, _Pr _Pred)
2053  { // test if _Val equivalent to some element, using _Pred
2054  _First = cliext::lower_bound_unchecked(_First, _Last, _Val, _Pred);
2055  return (_First != _Last && !_Pred(_Val, *_First));
2056  }
2057 
2058 template<class _FwdIt,
2059  class _Ty,
2060  class _Pr> inline
_FwdIt lower_bound_unchecked(_FwdIt _First, _FwdIt _Last, _Ty%_Val)
Definition: algorithm:1797
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_ORDER(first, last)
Definition: memory:223
_In_ int _Val
Definition: vcruntime_string.h:62
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
bool binary_search_unchecked(_FwdIt _First, _FwdIt _Last, const _Ty%_Val)
Definition: algorithm:2030
bool binary_search_unchecked(_FwdIt _First, _FwdIt _Last, const _Ty%_Val, _Pr _Pred)
Definition: algorithm:2051
_FwdIt _Last
Definition: algorithm:1936
template<class _RanIt , class _Ty , class _Pr >
void _Pop_heap_hole_unchecked ( _RanIt  _First,
_RanIt  _Last,
_RanIt  _Dest,
_Ty &&  _Val,
_Pr &  _Pred 
)
inline
2075  { // copy merging ranges, both using operator<
template<class _RanIt , class _Pr >
void _Pop_heap_unchecked ( _RanIt  _First,
_RanIt  _Last,
_Pr &  _Pred 
)
inline
2091  { // copy merging ranges, both using operator<
template<class _Ty >
_Post_equal_to_ ( ) const
inline
template<class _Ty >
_Post_equal_to_ ( ) const
inline
template<class _BidIt , class _Pr >
bool _Prev_permutation_unchecked ( _BidIt  _First,
_BidIt  _Last,
_Pr &  _Pred 
)
inline
3754  { // find largest element, using _Pred
3755  _STLCLRDB_RANGE(_First, _Last);
3758  _Unchecked(_First), _Unchecked(_Last), _Pred));
3759  }
3760 
3761  // TEMPLATE FUNCTION min_element
3762 template<class _FwdIt> inline
3763  _FwdIt min_element_unchecked(_FwdIt _First, _FwdIt _Last)
3764  { // find smallest element, using operator<
3765  _FwdIt _Found = _First;
3766  if (_First != _Last)
3767  for (; ++_First != _Last; )
3768  if (_STLCLRDB_LT(*_First, *_Found))
3769  _Found = _First;
3770  return (_Found);
3771  }
3772 
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT(left, right)
Definition: memory:218
_FwdIt min_element_unchecked(_FwdIt _First, _FwdIt _Last, _Pr _Pred)
Definition: algorithm:3784
#define _STLCLRDB_POINTER(first)
Definition: memory:221
_FwdIt max_element_unchecked(_FwdIt _First, _FwdIt _Last)
Definition: algorithm:3720
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _RanIt , class _Diff , class _Ty , class _Pr >
void _Push_heap_by_index ( _RanIt  _First,
_Diff  _Hole,
_Diff  _Top,
_Ty &&  _Val,
_Pr &  _Pred 
)
inline
1992  { // divide and conquer, check midpoint
1993  _Diff _Count2 = _Count / 2;
1994  _FwdIt _Mid = _First;
1995  cliext::advance(_Mid, _Count2);
1996 
1997  if (_STLCLRDB_LT_PRED(_Pred, *_Mid, _Val))
1998  { // range begins above _Mid, loop
1999  _First = ++_Mid;
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT_PRED(pred, left, right)
Definition: memory:219
unsigned int _Count
Definition: xcomplex:668
_In_ int _Val
Definition: vcruntime_string.h:62
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
template<class _RanIt , class _Pr >
void _Push_heap_unchecked ( _RanIt  _First,
_RanIt  _Last,
_Pr &  _Pred 
)
inline
2005  { // range straddles _Mid, find each end and return
2006  _FwdIt _First2 = lower_bound(_First, _Mid, _Val, _Pred);
2007  cliext::advance(_First, _Count);
2008  _FwdIt _Last2 = upper_bound(++_Mid, _First, _Val, _Pred);
2009  return (_PAIR_TYPE(_FwdIt)(_First2, _Last2));
2010  }
2011  }
2012 
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
unsigned int _Count
Definition: xcomplex:668
_In_ int _Val
Definition: vcruntime_string.h:62
#define _PAIR_TYPE(iter_t)
Definition: memory:31
_FwdIt lower_bound(_FwdIt _First, _FwdIt _Last, const _Ty &_Val, _Pr _Pred)
Definition: algorithm:2193
_FwdIt upper_bound(_FwdIt _First, _FwdIt _Last, const _Ty &_Val, _Pr _Pred)
Definition: algorithm:2239
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
template<class _RanIt , class _Fn1 >
void _Random_shuffle1 ( _RanIt  _First,
_RanIt  _Last,
_Fn1 &  _Func 
)
inline
1761  { // order heap by repeatedly popping, using operator<
1762  for (; 1 < _Last - _First; --_Last)
_FwdIt _Last
Definition: algorithm:1936
template<class _RanIt , class _Fn1 >
void _Random_shuffle_unchecked ( _RanIt  _First,
_RanIt  _Last,
_Fn1 &  _Func 
)
inline
1731  { // make [_First, _Last) into a heap, using _Pred
1734 
1735  if (1 < _Last - _First)
1736  { // make nontrivial heap
1737  _Diff _Bottom = _Last - _First;
1738 
1739  for (_Diff _Hole = _Bottom / 2; 0 < _Hole; )
1740  { // reheap top half, bottom to top
1741  --_Hole;
1742  cliext::_XAdjust_heap(_First, _Hole, _Bottom,
1743  _Ty(*(_First + _Hole)), _Pred);
1744  }
1745  }
1746  }
1747 
1748 template<class _RanIt,
1749  class _Pr> inline
1750  void make_heap(_RanIt _First, _RanIt _Last, _Pr _Pred)
1751  { // make [_First, _Last) into a heap, using _Pred
1752  _STLCLRDB_RANGE(_First, _Last);
1753  _STLCLRDB_POINTER(_Pred);
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
void make_heap(_RanIt _First, _RanIt _Last, _Pr _Pred)
Definition: algorithm:2124
#define _STLCLRDB_POINTER(first)
Definition: memory:221
void make_heap_unchecked(_RanIt _First, _RanIt _Last)
Definition: algorithm:1702
Definition: xutility:618
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
void _XAdjust_heap(_RanIt _First, _Diff _Hole, _Diff _Bottom, _Ty _Val)
Definition: algorithm:1590
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _Iter1 , class _Iter2 , class _UIter1 , class _UIter2 >
pair<_Iter1, _Iter2> _Rechecked_both ( _Iter1  _Dest1,
_Iter2  _Dest2,
pair< _UIter1, _UIter2 >  _Src 
)
inline
27  { // perform function for each element
28  _STLCLRDB_RANGE(_First, _Last);
29  _STLCLRDB_POINTER(_Func);
#define _STLCLRDB_POINTER(first)
Definition: memory:221
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _OutIt , class _Pr >
_OutIt _Remove_copy_if_no_deprecate ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Pr &  _Pred 
)
inline
1425  { // partition preserving order of equivalents, using _Pred
template<class _InIt , class _OutIt , class _Pr >
_OutIt _Remove_copy_if_unchecked ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Pr &  _Pred 
)
inline
1401  { // temp buffer not big enough, divide and conquer
1402  _BidIt _Mid = _First;
1403  cliext::advance(_Mid, _Count / 2);
1404 
1405  _BidIt _Left = cliext::_XStable_partition(_First, _Mid, _Pred,
1406  _Count / 2, _Tempbuf); // form L1R1 in left half
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
constexpr const _Ty &() _Left
Definition: algorithm:3590
unsigned int _Count
Definition: xcomplex:668
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
_BidIt _XStable_partition(_BidIt _First, _BidIt _Last, _Pr _Pred, _Diff _Count, _Temp_iterator< _Ty > _Tempbuf)
Definition: algorithm:1337
template<class _InIt , class _OutIt , class _Ty >
_OutIt _Remove_copy_unchecked ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
const _Ty &  _Val 
)
inline
1356  { // temp buffer not big enough, divide and conquer
1357  _BidIt _Mid = _First;
1358  cliext::advance(_Mid, _Count / 2);
1359 
1360  _BidIt _Left = cliext::_XStable_partition(_First, _Mid, _Pred,
1361  _Count / 2, _Tempbuf); // form L1R1 in left half
1362  _BidIt _Right = cliext::_XStable_partition(_Mid, _Last, _Pred,
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
constexpr const _Ty &() _Left
Definition: algorithm:3590
unsigned int _Count
Definition: xcomplex:668
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
_BidIt _XStable_partition(_BidIt _First, _BidIt _Last, _Pr _Pred, _Diff _Count, _Temp_iterator< _Ty > _Tempbuf)
Definition: algorithm:1337
_FwdIt _Last
Definition: algorithm:1936
constexpr const _Ty &() _Right
Definition: algorithm:3591
template<class _FwdIt , class _Pr >
_FwdIt _Remove_if_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_Pr &  _Pred 
)
inline
1499  { // percolate _Hole to _Top or where _Val belongs, using operator<
template<class _FwdIt , class _Ty >
_FwdIt _Remove_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val 
)
inline
1458  { // test if range is a heap ordered by operator<
Definition: xutility:618
template<class _InIt , class _OutIt , class _Ty >
_OutIt _Replace_copy1 ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
const _Ty &  _Oldval,
const _Ty &  _Newval,
input_iterator_tag  ,
_Any_tag   
)
inline
1176  { // rotate each subcycle
1177  _RanIt _Hole = _First + _Count;
1178  _RanIt _Next = _Hole;
unsigned int _Count
Definition: xcomplex:668
template<class _InIt , class _OutIt , class _Ty >
_OutIt _Replace_copy1 ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
const _Ty &  _Oldval,
const _Ty &  _Newval,
random_access_iterator_tag  ,
random_access_iterator_tag   
)
inline
1186  : _First + (_Shift - (_Last - _Next1));
1187  }
1188  *_Next = _Holeval;
1189  }
1190  }
1191 
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _OutIt , class _Pr , class _Ty >
_OutIt _Replace_copy_if_no_deprecate ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Pr &  _Pred,
const _Ty &  _Val 
)
inline
1269  { // shuffle [_First, _Last)
1270  _STLCLRDB_RANGE(_First, _Last);
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _OutIt , class _Pr , class _Ty >
_OutIt _Replace_copy_if_no_deprecate1 ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Pr &  _Pred,
const _Ty &  _Val,
input_iterator_tag  ,
_Any_tag   
)
inline
1243  { // shuffle [_First, _Last)
template<class _InIt , class _OutIt , class _Pr , class _Ty >
_OutIt _Replace_copy_if_no_deprecate1 ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Pr &  _Pred,
const _Ty &  _Val,
random_access_iterator_tag  ,
random_access_iterator_tag   
)
inline
1253  { // assume unsigned long big enough for _Diff count
1254  unsigned long _Rm = _RANDOM_MAX;
1255  unsigned long _Rn = _Rand() & _RANDOM_MAX;
1256  for (; _Rm < _Index && _Rm != ~0UL;
int _Rand(void)
Definition: algorithm:1233
template<class _InIt , class _OutIt , class _Pr , class _Ty >
_OutIt _Replace_copy_if_unchecked ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Pr &  _Pred,
const _Ty &  _Val 
)
inline
1234  { /* compute pseudo-random value */
template<class _InIt , class _OutIt , class _Ty >
_OutIt _Replace_copy_unchecked ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
const _Ty &  _Oldval,
const _Ty &  _Newval 
)
inline
1161  { // rotate [_First, _Last), random-access iterators
1164 
1165  _Diff _Shift = _Mid - _First;
1166  _Diff _Count = _Last - _First;
unsigned int _Count
Definition: xcomplex:668
Definition: xutility:618
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt , class _Pr , class _Ty >
void _Replace_if_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_Pr &  _Pred,
const _Ty &  _Val 
)
inline
1152  { // rotate [_First, _Last), bidirectional iterators
template<class _FwdIt , class _Ty >
void _Replace_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Oldval,
const _Ty &  _Newval 
)
inline
1124  { // copy reversing elements in [_First, _Last)
template<class _BidIt , class _OutIt >
_OutIt _Reverse_copy1 ( _BidIt  _First,
_BidIt  _Last,
_OutIt  _Dest,
bidirectional_iterator_tag  ,
_Any_tag   
)
inline
1646  { // percolate _Hole to _Bottom, then push _Val, using _Pred
1647  _Diff _Top = _Hole;
1648  _Diff _Idx = 2 * _Hole + 2;
1649 
1650  for (; _Idx < _Bottom; _Idx = 2 * _Idx + 2)
1651  { // move _Hole down to larger child
template<class _BidIt , class _OutIt >
_OutIt _Reverse_copy1 ( _BidIt  _First,
_BidIt  _Last,
_OutIt  _Dest,
random_access_iterator_tag  ,
random_access_iterator_tag   
)
inline
1659  { // only child at bottom, move _Hole down to it
1660  *(_First + _Hole) = *(_First + (_Bottom - 1));
1661  _Hole = _Bottom - 1;
1662  }
template<class _BidIt , class _OutIt >
_OutIt _Reverse_copy_unchecked ( _BidIt  _First,
_BidIt  _Last,
_OutIt  _Dest 
)
inline
1646  { // percolate _Hole to _Bottom, then push _Val, using _Pred
template<class _FwdIt , class _OutIt >
_OutIt _Rotate_copy1 ( _FwdIt  _First,
_FwdIt  _Mid,
_FwdIt  _Last,
_OutIt  _Dest,
forward_iterator_tag  ,
_Any_tag   
)
inline
1703  { // make [_First, _Last) into a heap, using operator<
Definition: xutility:618
template<class _FwdIt , class _OutIt >
_OutIt _Rotate_copy1 ( _FwdIt  _First,
_FwdIt  _Mid,
_FwdIt  _Last,
_OutIt  _Dest,
random_access_iterator_tag  ,
random_access_iterator_tag   
)
inline
1712  { // reheap top half, bottom to top
1713  --_Hole;
1714  cliext::_XAdjust_heap(_First, _Hole, _Bottom,
1715  _Ty(*(_First + _Hole)));
void _XAdjust_heap(_RanIt _First, _Diff _Hole, _Diff _Bottom, _Ty _Val)
Definition: algorithm:1590
template<class _FwdIt , class _OutIt >
_OutIt _Rotate_copy_unchecked ( _FwdIt  _First,
_FwdIt  _Mid,
_FwdIt  _Last,
_OutIt  _Dest 
)
inline
1692  { // pop *_First to *(_Last - 1) and reheap, using _Pred
1693  _STLCLRDB_RANGE(_First, _Last);
1695  _STLCLRDB_HEAP_PRED(_First, _Last, _Pred);
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_HEAP_PRED(first, last, pred)
Definition: algorithm:1490
#define _STLCLRDB_POINTER(first)
Definition: memory:221
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
void pop_heap_unchecked(_RanIt _First, _RanIt _Last)
Definition: algorithm:1622
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt , class _Diff , class _Ty , class _Pr >
_FwdIt _Search_n_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_Diff  _Count,
const _Ty &  _Val,
_Pr &  _Pred,
forward_iterator_tag   
)
inline
669  { // replace each matching _Oldval with _Newval
670  _STLCLRDB_RANGE(_First, _Last);
672  _Oldval, _Newval);
673  }
674 
675  // TEMPLATE FUNCTION replace_if
676 template<class _FwdIt,
677  class _Pr,
678  class _Ty> inline
679  void replace_if_unchecked(_FwdIt _First, _FwdIt _Last,
680  _Pr _Pred, const _Ty% _Val)
681  { // replace each satisfying _Pred with _Val
682  for (; _First != _Last; ++_First)
683  if (_Pred(*_First))
684  *_First = _Val;
685  }
686 
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_In_ int _Val
Definition: vcruntime_string.h:62
void replace_if_unchecked(_FwdIt _First, _FwdIt _Last, _Pr _Pred, const _Ty%_Val)
Definition: algorithm:679
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
void replace_unchecked(_FwdIt _First, _FwdIt _Last, const _Ty%_Oldval, const _Ty%_Newval)
Definition: algorithm:657
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt , class _Diff , class _Ty , class _Pr >
_FwdIt _Search_n_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_Diff  _Count,
const _Ty &  _Val,
_Pr &  _Pred,
random_access_iterator_tag   
)
inline
692  { // replace each satisfying _Pred with _Val
693  _STLCLRDB_RANGE(_First, _Last);
696  _Pred, _Val);
697  }
698 
699  // TEMPLATE FUNCTION replace_copy
700 template<class _InIt,
701  class _OutIt,
702  class _Ty> inline
703  _OutIt replace_copy_unchecked(_InIt _First, _InIt _Last,
704  _OutIt _Dest, const _Ty% _Oldval, const _Ty% _Newval)
705  { // copy replacing each matching _Oldval with _Newval
706  for (; _First != _Last; ++_First, ++_Dest)
707  *_Dest = *_First == _Oldval ? _Newval : *_First;
708  return (_Dest);
709  }
710 
711 template<class _InIt,
712  class _OutIt,
713  class _Ty> inline
714  _OutIt replace_copy(_InIt _First, _InIt _Last,
715  _OutIt _Dest, const _Ty% _Oldval, const _Ty% _Newval)
716  { // copy replacing each matching _Oldval with _Newval
717  _STLCLRDB_RANGE(_First, _Last);
718  _STLCLRDB_POINTER(_Dest);
720  _Unchecked(_First), _Unchecked(_Last),
721  _Unchecked(_Dest), _Oldval, _Newval));
722  }
723 
724  // TEMPLATE FUNCTION replace_copy_if
725 template<class _InIt,
726  class _OutIt,
727  class _Pr,
728  class _Ty> inline
729  _OutIt replace_copy_if_unchecked(_InIt _First, _InIt _Last,
730  _OutIt _Dest, _Pr _Pred, const _Ty% _Val)
731  { // copy replacing each satisfying _Pred with _Val
732  for (; _First != _Last; ++_First, ++_Dest)
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_OutIt replace_copy_if_unchecked(_InIt _First, _InIt _Last, _OutIt _Dest, _Pr _Pred, const _Ty%_Val)
Definition: algorithm:729
_OutIt replace_copy_unchecked(_InIt _First, _InIt _Last, _OutIt _Dest, const _Ty%_Oldval, const _Ty%_Newval)
Definition: algorithm:703
_In_ int _Val
Definition: vcruntime_string.h:62
#define _STLCLRDB_POINTER(first)
Definition: memory:221
void replace_if_unchecked(_FwdIt _First, _FwdIt _Last, _Pr _Pred, const _Ty%_Val)
Definition: algorithm:679
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
_OutIt replace_copy(_InIt _First, _InIt _Last, _OutIt _Dest, const _Ty &_Oldval, const _Ty &_Newval)
Definition: algorithm:1196
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 _Search_unchecked ( _FwdIt1  _First1,
_FwdIt1  _Last1,
_FwdIt2  _First2,
_FwdIt2  _Last2,
_Pr &  _Pred,
forward_iterator_tag  ,
forward_iterator_tag   
)
inline
593  { // swap [_First1, _Last1) with [_First2, ...)
594  _STLCLRDB_RANGE(_First1, _Last1);
596  _Unchecked(_First1), _Unchecked(_Last1),
597  _Unchecked(_First2)));
598  }
599 
600  // TEMPLATE FUNCTION transform WITH UNARY OP
601 template<class _InIt,
602  class _OutIt,
603  class _Fn1> inline
604  _OutIt transform_unchecked(_InIt _First, _InIt _Last,
605  _OutIt _Dest, _Fn1 _Func)
606  { // transform [_First, _Last) with _Func
_OutIt transform_unchecked(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _OutIt _Dest, _Fn2 _Func)
Definition: algorithm:630
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
_FwdIt2 swap_ranges_unchecked(_FwdIt1 _First1, _FwdIt1 _Last1, _FwdIt2 _First2)
Definition: algorithm:581
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 _Search_unchecked ( _FwdIt1  _First1,
_FwdIt1  _Last1,
_FwdIt2  _First2,
_FwdIt2  _Last2,
_Pr &  _Pred,
random_access_iterator_tag  ,
random_access_iterator_tag   
)
inline
616  { // transform [_First, _Last) with _Func
617  _STLCLRDB_RANGE(_First, _Last);
618  _STLCLRDB_POINTER(_Dest);
619  _STLCLRDB_POINTER(_Func);
621  _Unchecked(_First), _Unchecked(_Last),
622  _Dest, _Func));
623  }
624 
625  // TEMPLATE FUNCTION transform WITH BINARY OP
626 template<class _InIt1,
627  class _InIt2,
628  class _OutIt,
629  class _Fn2> inline
#define _STLCLRDB_POINTER(first)
Definition: memory:221
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
_OutIt transform_unchecked(_InIt _First, _InIt _Last, _OutIt _Dest, _Fn1 _Func)
Definition: algorithm:604
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Set_difference_no_deprecate ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest,
_Pr &  _Pred 
)
inline
3299  { // copy [First1, _Last1) into [_First2, _Last2) using _Pred
3302 
3303  if (_First1 == _Last1 || _First2 == _Last2)
3304  return (_First2);
3305  else
3306  { // copy and sort nontrivial
Definition: xutility:618
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Set_difference_no_deprecate1 ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest,
_Pr &  _Pred 
)
inline
3285  { // copy [First1, _Last1) into [_First2, _Last2), using operator<
3286  _STLCLRDB_RANGE(_First1, _Last1);
3287  _STLCLRDB_RANGE(_First2, _Last2);
3289  _Unchecked(_First1), _Unchecked(_Last1),
3290  _Unchecked(_First2), _Unchecked(_Last2)));
_RanIt partial_sort_copy_unchecked(_InIt _First1, _InIt _Last1, _RanIt _First2, _RanIt _Last2)
Definition: algorithm:3254
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Set_intersection_no_deprecate ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest,
_Pr &  _Pred 
)
inline
3216  { // order [First, _Last) up to _Mid, using operator<
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Set_intersection_no_deprecate1 ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest,
_Pr &  _Pred 
)
inline
3181  { // sort nontrivial sequence
3182  _Diff _Count = 0;
3183  _Iter_distance(_First, _Last, _Count);
3184  _TEMP_ITER(_BidIt, _Ty) _Tempbuf((_Count + 1) / 2);
3185  cliext::_XStable_sort(_First, _Last, _Count, _Tempbuf, _Pred);
3186  }
3187  }
3188 
3189 template<class _BidIt,
3190  class _Pr> inline
3191  void stable_sort(_BidIt _First, _BidIt _Last, _Pr _Pred)
3192  { // sort preserving order of equivalents, using _Pred
3193  _STLCLRDB_RANGE(_First, _Last);
3194  _STLCLRDB_POINTER(_Pred);
3196  _Unchecked(_First), _Unchecked(_Last), _Pred);
3197  }
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
unsigned int _Count
Definition: xcomplex:668
#define _STLCLRDB_POINTER(first)
Definition: memory:221
#define _TEMP_ITER(iter_t, value_t)
Definition: memory:244
void stable_sort(_BidIt _First, _BidIt _Last, _Pr _Pred)
Definition: algorithm:2897
void _XStable_sort(_BidIt _First, _BidIt _Last, _Diff _Count, _Temp_iterator< _Ty > _Tempbuf, _Pr _Pred)
Definition: algorithm:3105
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
_Iter_distance(_First, _Last, _Count)
void stable_sort_unchecked(_BidIt _First, _BidIt _Last)
Definition: algorithm:2990
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
Definition: adapter:7
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Set_symmetric_difference_no_deprecate ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest,
_Pr &  _Pred 
)
inline
3405  { // test if all [_First1, _Last1) in [_First2, _Last2), using operator<
3406  for (; _First1 != _Last1 && _First2 != _Last2; )
3407  if (_STLCLRDB_LT(*_First2, *_First1))
3408  return (false);
3409  else if (*_First1 < *_First2)
#define _STLCLRDB_LT(left, right)
Definition: memory:218
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Set_symmetric_difference_no_deprecate1 ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest,
_Pr &  _Pred 
)
inline
3372  { // order Nth element, using _Pred
3373  for (; _ISort::_Max < _Last - _First; )
3374  { // divide and conquer, ordering partition containing Nth
3375  _PAIR_TYPE(_RanIt) _Mid =
3376  cliext::_XUnguarded_partition(_First, _Last, _Pred);
3377 
3378  if (_Mid.second <= _Nth)
3379  _First = _Mid.second;
3380  else if (_Mid.first <= _Nth)
3381  return; // Nth inside fat pivot, done
3382  else
3383  _Last = _Mid.first;
3384  }
3385 
3386  cliext::_XInsertion_sort(_First, _Last, _Pred); // sort any remainder
3387  }
3388 
3389 template<class _RanIt,
3390  class _Pr> inline
3391  void nth_element(_RanIt _First, _RanIt _Nth, _RanIt _Last, _Pr _Pred)
3392  { // order Nth element, using _Pred
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
else
Definition: vccorlib.h:1729
#define _PAIR_TYPE(iter_t)
Definition: memory:31
return(cliext::equal_range_unchecked(_Unchecked(_First), _Unchecked(_Last), _Val, _Pred))
void nth_element(_RanIt _First, _RanIt _Nth, _RanIt _Last, _Pr _Pred)
Definition: algorithm:3021
if(__pUnknown!=*__ppTargetUnknown)
Definition: vccorlib.h:399
Definition: adapter:7
void _XInsertion_sort(_BidIt _First, _BidIt _Last, _Pr _Pred)
Definition: algorithm:2676
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Set_union_no_deprecate ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest,
_Pr &  _Pred 
)
inline
3117  { // temp buffer big enough, sort each half using buffer
3118  cliext::_XBuffered_merge_sort(_First, _Mid, _Count2,
3119  _Tempbuf, _Pred);
3120  cliext::_XBuffered_merge_sort(_Mid, _Last, _Count - _Count2,
3121  _Tempbuf, _Pred);
3122  }
3123  else
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
unsigned int _Count
Definition: xcomplex:668
void _XBuffered_merge_sort(_BidIt _First, _BidIt _Last, _Diff _Count, _Temp_iterator< _Ty > _Tempbuf)
Definition: algorithm:2872
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt _Set_union_no_deprecate1 ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest,
_Pr &  _Pred 
)
inline
3092  { // merge adjacent pairs of chunks to and from temp buffer
3093  cliext::_XChunked_merge(_First, _Last, _Tempbuf._Init(),
3094  _Chunk, _Count, _Pred);
3095  cliext::_XChunked_merge(_Tempbuf._First(), _Tempbuf._Last(), _First,
3096  _Chunk *= 2, _Count, _Pred);
3097  }
3098  }
3099 #endif // __cplusplus_cli
3100 
3101 template<class _BidIt,
3102  class _Diff,
3103  class _Ty,
3104  class _Pr> inline
3105  void _XStable_sort(_BidIt _First, _BidIt _Last, _Diff _Count,
3106  _Temp_iterator<_Ty> _Tempbuf, _Pr _Pred)
3107  { // sort preserving order of equivalents, using _Pred
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
unsigned int _Count
Definition: xcomplex:668
void _XStable_sort(_BidIt _First, _BidIt _Last, _Diff _Count, _Temp_iterator< _Ty > _Tempbuf, _Pr _Pred)
Definition: algorithm:3105
Definition: xmemory:543
void _XChunked_merge(_BidIt _First, _BidIt _Last, _OutIt _Dest, _Diff _Chunk, _Diff _Count)
Definition: algorithm:2842
_FwdIt _Last
Definition: algorithm:1936
template<class _RanIt , class _Pr >
void _Sort_heap_unchecked ( _RanIt  _First,
_RanIt  _Last,
_Pr &  _Pred 
)
inline
2141  { // rotate [_First, _Last) using temp buffer
2142  if (_Count1 <= _Count2 && _Count1 <= _Tempbuf._Maxlen())
2143  { // buffer left partition, then copy parts
2144  cliext::copy_unchecked(_First, _Mid, _Tempbuf._Init());
_OutIt copy_unchecked(_InIt _First, _InIt _Last, _OutIt _Dest)
Definition: memory:490
template<class _RanIt , class _Pr >
void _Sort_unchecked ( _RanIt  _First,
_RanIt  _Last,
_Pr &  _Pred 
)
inline
2779  { // no room at top, rotate pivot downward
template<class _RanIt , class _Diff , class _Pr >
void _Sort_unchecked1 ( _RanIt  _First,
_RanIt  _Last,
_Diff  _Ideal,
_Pr &  _Pred 
)
inline
2753  { // partition
2754  for (; _Gfirst < _Last; ++_Gfirst)
2756  ;
2757  else if (_Pred(*_Gfirst, *_Pfirst))
2758  break;
2759  else
2761  for (; _First < _Glast; --_Glast)
2762  if (_STLCLRDB_LT_PRED(_Pred, *(_Glast - 1), *_Pfirst))
2763  ;
2764  else if (_Pred(*_Pfirst, *(_Glast - 1)))
2765  break;
2766  else
2767  cliext::iter_swap(--_Pfirst, _Glast - 1);
2768  if (_Glast == _First && _Gfirst == _Last)
2769  return (_PAIR_TYPE(_RanIt)(_Pfirst, _Plast));
2770 
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT_PRED(pred, left, right)
Definition: memory:219
_RanIt _Plast
Definition: algorithm:2577
#define _PAIR_TYPE(iter_t)
Definition: memory:31
_RanIt _Pfirst
Definition: algorithm:2576
_RanIt _Glast
Definition: algorithm:2589
_RanIt _Gfirst
Definition: algorithm:2588
void iter_swap(_FwdIt1 _Left, _FwdIt2 _Right)
Definition: algorithm:573
_FwdIt _Last
Definition: algorithm:1936
template<class _BidIt , class _Pr >
_BidIt _Stable_partition_unchecked ( _BidIt  _First,
_BidIt  _Last,
_Pr &  _Pred 
)
inline
1945  { // divide and conquer, check midpoint
1946  _Diff _Count2 = _Count / 2;
unsigned int _Count
Definition: xcomplex:668
template<class _BidIt , class _Pr , class _Diff , class _Ty >
_BidIt _Stable_partition_unchecked1 ( _BidIt  _First,
_BidIt  _Last,
_Pr &  _Pred,
_Diff  _Count,
_Temp_iterator< _Ty > &  _Tempbuf 
)
inline
1903  { // find first element that _Val is before, using _Pred
1905 
1906  _Diff _Count = 0;
1907  _Iter_distance(_First, _Last, _Count);
1908  for (; 0 < _Count; )
1909  { // divide and conquer, find half that contains answer
1910  _Diff _Count2 = _Count / 2;
1911  _FwdIt _Mid = _First;
1912  cliext::advance(_Mid, _Count2);
1913 
1914  if (!_STLCLRDB_LT_PRED(_Pred, _Val, *_Mid))
1915  _First = ++_Mid, _Count -= _Count2 + 1;
1916  else
1917  _Count = _Count2;
1918  }
1919  return (_First);
1920  }
1921 
1922 template<class _FwdIt,
1923  class _Ty,
1924  class _Pr> inline
1925  _FwdIt upper_bound(_FwdIt _First, _FwdIt _Last,
1926  const _Ty% _Val, _Pr _Pred)
1927  { // find first element that _Val is before, using _Pred
1928  _STLCLRDB_ORDER_PRED(_First, _Last, _Pred);
1930  _Unchecked(_First), _Unchecked(_Last), _Val, _Pred));
1931  }
1932 
1933  // TEMPLATE FUNCTION equal_range
1934 template<class _FwdIt,
1935  class _Ty> inline
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT_PRED(pred, left, right)
Definition: memory:219
unsigned int _Count
Definition: xcomplex:668
_In_ int _Val
Definition: vcruntime_string.h:62
_FwdIt upper_bound(_FwdIt _First, _FwdIt _Last, const _Ty &_Val, _Pr _Pred)
Definition: algorithm:2239
Definition: xutility:618
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_ORDER_PRED(first, last, pred)
Definition: memory:224
_Iter_distance(_First, _Last, _Count)
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
_FwdIt upper_bound_unchecked(_FwdIt _First, _FwdIt _Last, const _Ty%_Val)
Definition: algorithm:1867
_FwdIt _Last
Definition: algorithm:1936
template<class _BidIt , class _Pr >
void _Stable_sort_unchecked ( _BidIt  _First,
_BidIt  _Last,
_Pr &  _Pred 
)
inline
2887  { // merge adjacent pairs of chunks to and from temp buffer
2888  cliext::_XChunked_merge(_First, _Last, _Tempbuf._Init(),
2889  _Chunk, _Count);
2890  cliext::_XChunked_merge(_Tempbuf._First(), _Tempbuf._Last(), _First,
2891  _Chunk *= 2, _Count);
2892  }
2893  }
unsigned int _Count
Definition: xcomplex:668
void _XChunked_merge(_BidIt _First, _BidIt _Last, _OutIt _Dest, _Diff _Chunk, _Diff _Count)
Definition: algorithm:2842
_FwdIt _Last
Definition: algorithm:1936
template<class _BidIt , class _Diff , class _Ty , class _Pr >
void _Stable_sort_unchecked1 ( _BidIt  _First,
_BidIt  _Last,
_Diff  _Count,
_Temp_iterator< _Ty > &  _Tempbuf,
_Pr &  _Pred 
)
inline
2861  { // copy merging whole and partial last chunk
2862  _BidIt _Mid = _First;
2863  cliext::advance(_Mid, _Chunk);
2864 
2865  cliext::merge_unchecked(_First, _Mid, _Mid, _Last, _Dest);
2866  }
2867  }
2868 
2869 template<class _BidIt,
2870  class _Diff,
2871  class _Ty> inline
2872  void _XBuffered_merge_sort(_BidIt _First, _BidIt _Last, _Diff _Count,
2873  _Temp_iterator<_Ty> _Tempbuf)
2874  { // sort using temp buffer for merges, using operator<
2875  _BidIt _Mid = _First;
2876  for (_Diff _Nleft = _Count; _ISort::_Max <= _Nleft; _Nleft -= _ISort::_Max)
2877  { // sort chunks
2878  _BidIt _Midend = _Mid;
2879  cliext::advance(_Midend, (int)_ISort::_Max);
2880 
2881  cliext::_XInsertion_sort(_Mid, _Midend);
_OutIt merge_unchecked(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
Definition: algorithm:2073
unsigned int _Count
Definition: xcomplex:668
Definition: xmemory:543
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
void _XInsertion_sort(_BidIt _First, _BidIt _Last)
Definition: algorithm:2519
void _XBuffered_merge_sort(_BidIt _First, _BidIt _Last, _Diff _Count, _Temp_iterator< _Ty > _Tempbuf, _Pr _Pred)
Definition: algorithm:3049
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt2 _Swap_ranges1 ( _FwdIt1  _First1,
_FwdIt1  _Last1,
_FwdIt2  _Dest,
forward_iterator_tag  ,
forward_iterator_tag   
)
inline
873  { // remove each satisfying _Pred
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt2 _Swap_ranges1 ( _FwdIt1  _First1,
_FwdIt1  _Last1,
_FwdIt2  _Dest,
random_access_iterator_tag  ,
random_access_iterator_tag   
)
inline
873  { // remove each satisfying _Pred
874  _First = cliext::find_if_unchecked(_First, _Last, _Pred);
875  if (_First == _Last)
876  return (_First); // empty sequence, all done
877  else
878  { // nonempty sequence, worth doing
879  _FwdIt _First1 = _First;
880  return (cliext::remove_copy_if_unchecked(++_First1, _Last,
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_InIt find_if_unchecked(_InIt _First, _InIt _Last, _Pr _Pred)
Definition: algorithm:85
_OutIt remove_copy_if_unchecked(_InIt _First, _InIt _Last, _OutIt _Dest, _Pr _Pred)
Definition: algorithm:820
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt2 _Swap_ranges_unchecked ( _FwdIt1  _First1,
_FwdIt1  _Last1,
_FwdIt2  _Dest 
)
inline
853  { // nonempty sequence, worth doing
854  _FwdIt _First1 = _First;
855  return (cliext::remove_copy(++_First1, _Last, _First, _Val));
856  }
857  }
858 
859 template<class _FwdIt,
_In_ int _Val
Definition: vcruntime_string.h:62
_OutIt remove_copy(_InIt _First, _InIt _Last, _OutIt _Dest, const _Ty%_Val)
Definition: algorithm:806
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _OutIt , class _Fn1 >
_OutIt _Transform_no_deprecate ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Fn1 &  _Func 
)
inline
949  { // copy compressing pairs that match, input iterators
951 
Definition: xutility:618
template<class _InIt1 , class _InIt2 , class _OutIt , class _Fn2 >
_OutIt _Transform_no_deprecate ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_OutIt  _Dest,
_Fn2 &  _Func 
)
inline
1053  { // copy compressing pairs satisfying _Pred, random-access iterators
1054  return (_Unique_copy(_First, _Last, _Dest, _Pred,
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_OutIt _Unique_copy(_RanIt _First, _RanIt _Last, _OutIt _Dest, _Pr _Pred, random_access_iterator_tag)
Definition: algorithm:1051
Definition: xutility:519
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _OutIt , class _Fn1 >
_OutIt _Transform_no_deprecate1 ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Fn1 &  _Func,
input_iterator_tag  ,
_Any_tag   
)
inline
922  { // remove each satisfying _Pred with previous
923  for (_FwdIt _Firstb; (_Firstb = _First) != _Last && ++_First != _Last; )
924  if (_Pred(*_Firstb, *_First))
925  { // copy down
926  for (; ++_First != _Last; )
927  if (!_Pred(*_Firstb, *_First))
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _OutIt , class _Fn1 >
_OutIt _Transform_no_deprecate1 ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Fn1 &  _Func,
random_access_iterator_tag  ,
random_access_iterator_tag   
)
inline
937  { // remove each satisfying _Pred with previous
938  _STLCLRDB_RANGE(_First, _Last);
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_POINTER(first)
Definition: memory:221
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt1 , class _InIt2 , class _OutIt , class _Fn2 >
_OutIt _Transform_no_deprecate1 ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_OutIt  _Dest,
_Fn2 &  _Func,
input_iterator_tag  ,
input_iterator_tag   
)
inline
1029  { // copy compressing pairs satisfying _Pred, forward iterators
template<class _InIt1 , class _InIt2 , class _OutIt , class _Fn2 >
_OutIt _Transform_no_deprecate1 ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_OutIt  _Dest,
_Fn2 &  _Func,
random_access_iterator_tag  ,
random_access_iterator_tag   
)
inline
1043  { // copy compressing pairs satisfying _Pred, bidirectional iterators
template<class _InIt1 , class _InIt2 , class _OutIt , class _Fn2 >
_OutIt _Transform_no_deprecate2 ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_OutIt  _Dest,
_Fn2 &  _Func,
input_iterator_tag  ,
_Any_tag   
)
inline
999  { // copy compressing pairs that match
1000  _STLCLRDB_RANGE(_First, _Last);
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt1 , class _InIt2 , class _OutIt , class _Fn2 >
_OutIt _Transform_no_deprecate2 ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_OutIt  _Dest,
_Fn2 &  _Func,
random_access_iterator_tag  ,
random_access_iterator_tag   
)
inline
1013  { // copy compressing pairs satisfying _Pred, input iterators
template<class _InIt , class _OutIt , class _Fn1 >
_OutIt _Transform_unchecked ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Fn1 &  _Func 
)
inline
912  { // remove each matching previous
913  _STLCLRDB_RANGE(_First, _Last);
914  return (cliext::unique_unchecked(
915  _Unchecked(_First), _Unchecked(_Last)));
916  }
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
_FwdIt unique_unchecked(_FwdIt _First, _FwdIt _Last)
Definition: algorithm:897
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt1 , class _InIt2 , class _OutIt , class _Fn2 >
_OutIt _Transform_unchecked ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_OutIt  _Dest,
_Fn2 &  _Func 
)
inline
984  { // copy compressing pairs that match, random-access iterators
985  return (_Unique_copy(_First, _Last, _Dest, forward_iterator_tag()));
986  }
987 
988 template<class _InIt,
_OutIt _Unique_copy(_RanIt _First, _RanIt _Last, _OutIt _Dest, _Pr _Pred, random_access_iterator_tag)
Definition: algorithm:1051
Definition: xutility:519
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _OutIt , class _Pr >
_OutIt _Unique_copy_no_deprecate ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Pr &  _Pred 
)
inline
1579  { // check and push non-empty heap+addition
1580  _STLCLRDB_HEAP_PRED(_First, _Last - 1, _Pred);
1582  _Pred);
1583  }
1584  }
1585 
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_HEAP_PRED(first, last, pred)
Definition: algorithm:1490
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
void push_heap_unchecked(_RanIt _First, _RanIt _Last)
Definition: algorithm:1512
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _OutIt , class _Pr >
_OutIt _Unique_copy_unchecked ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Pr &  _Pred,
input_iterator_tag   
)
inline
1544  { // percolate _Hole to _Top or where _Val belongs, using operator<
1545  for (_Diff _Idx = (_Hole - 1) / 2;
1546  _Top < _Hole && _STLCLRDB_LT_PRED(_Pred, *(_First + _Idx), _Val);
1547  _Idx = (_Hole - 1) / 2)
1548  { // move _Hole up to parent
1549  *(_First + _Hole) = *(_First + _Idx);
1550  _Hole = _Idx;
1551  }
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT_PRED(pred, left, right)
Definition: memory:219
_In_ int _Val
Definition: vcruntime_string.h:62
template<class _FwdIt , class _OutIt , class _Pr >
_OutIt _Unique_copy_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_OutIt  _Dest,
_Pr &  _Pred,
forward_iterator_tag   
)
inline
1559  { // push *(_Last - 1) onto heap at [_First, _Last - 1), using _Pred
1562 
1563  --_Last;
1564  _Diff _Count = _Last - _First;
1565  if (0 < _Count)
1566  cliext::_XPush_heap(_First, _Count, _Diff(0), _Ty(*_Last), _Pred);
1567  }
1568 
1569 template<class _RanIt,
1570  class _Pr> inline
1571  void push_heap(_RanIt _First, _RanIt _Last, _Pr _Pred)
1572  { // push *(_Last - 1) onto heap at [_First, _Last - 1), using _Pred
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
unsigned int _Count
Definition: xcomplex:668
void _XPush_heap(_RanIt _First, _Diff _Hole, _Diff _Top, _Ty _Val)
Definition: algorithm:1497
void push_heap(_RanIt _First, _RanIt _Last, _Pr _Pred)
Definition: algorithm:2016
Definition: xutility:618
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt , class _Pr >
_FwdIt _Unique_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_Pr &  _Pred 
)
inline
1499  { // percolate _Hole to _Top or where _Val belongs, using operator<
1500  for (_Diff _Idx = (_Hole - 1) / 2;
1501  _Top < _Hole && _STLCLRDB_LT(*(_First + _Idx), _Val);
1502  _Idx = (_Hole - 1) / 2)
1503  { // move _Hole up to parent
1504  *(_First + _Hole) = *(_First + _Idx);
1505  _Hole = _Idx;
1506  }
1507 
1508  *(_First + _Hole) = _Val; // drop _Val into final hole
1509  }
1510 
1511 template<class _RanIt> inline
1512  void push_heap_unchecked(_RanIt _First, _RanIt _Last)
#define _STLCLRDB_LT(left, right)
Definition: memory:218
_In_ int _Val
Definition: vcruntime_string.h:62
void push_heap_unchecked(_RanIt _First, _RanIt _Last, _Pr _Pred)
Definition: algorithm:1558
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt , class _Ty , class _Pr >
_FwdIt _Upper_bound_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val,
_Pr &  _Pred 
)
inline
2217  { // merge [_First, _Mid) with [_Mid, _Last), using operator<
2218  if (_Count1 + _Count2 == 2)
2219  { // order two one-element partitions
2220  if (_STLCLRDB_LT(*_Mid, *_First))
2221  cliext::iter_swap(_First, _Mid);
2222  }
2223  else if (_Count1 <= _Count2 && _Count1 <= _Tempbuf._Maxlen())
2224  { // buffer left partition, then merge
2225  cliext::copy_unchecked(_First, _Mid, _Tempbuf._Init());
2226  cliext::merge_unchecked(_Tempbuf._First(), _Tempbuf._Last(),
2227  _Mid, _Last, _First);
2228  }
2229  else if (_Count2 <= _Tempbuf._Maxlen())
2230  { // buffer right partition, then merge
2231  cliext::copy_unchecked(_Mid, _Last, _Tempbuf._Init());
2232  cliext::_XMerge_backward(_First, _Mid,
2233  _Tempbuf._First(), _Tempbuf._Last(), _Last);
2234  }
_OutIt merge_unchecked(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
Definition: algorithm:2073
#define _STLCLRDB_LT(left, right)
Definition: memory:218
void iter_swap(_FwdIt1 _Left, _FwdIt2 _Right)
Definition: algorithm:573
_OutIt copy_unchecked(_InIt _First, _InIt _Last, _OutIt _Dest)
Definition: memory:490
_BidIt3 _XMerge_backward(_BidIt1 _First1, _BidIt1 _Last1, _BidIt2 _First2, _BidIt2 _Last2, _BidIt3 _Dest)
Definition: algorithm:2197
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt , class _Pr >
_FwdIt adjacent_find ( _FwdIt  _First,
_FwdIt  _Last,
_Pr  _Pred 
)
inline
115  { // find first matching successor
116  _STLCLRDB_RANGE(_First, _Last);
118  _Unchecked(_First), _Unchecked(_Last)));
119  }
120 
121  // TEMPLATE FUNCTION adjacent_find WITH PRED
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
_FwdIt adjacent_find_unchecked(_FwdIt _First, _FwdIt _Last)
Definition: algorithm:105
template<class _FwdIt >
_FwdIt adjacent_find ( _FwdIt  _First,
_FwdIt  _Last 
)
inline
125  { // find first satisfying _Pred with successor
126  for (_FwdIt _Firstb; (_Firstb = _First) != _Last && ++_First != _Last; )
127  if (_Pred(*_Firstb, *_First))
128  return (_Firstb);
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _Pr >
bool all_of ( _InIt  _First,
_InIt  _Last,
_Pr  _Pred 
)
inline
327  { // no match, take big jump and back up as needed
template<class _InIt , class _Pr >
bool any_of ( _InIt  _First,
_InIt  _Last,
_Pr  _Pred 
)
inline
340  { // find first _Count * _Val match
template<class _FwdIt , class _Ty , class _Pr >
bool binary_search ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val,
_Pr  _Pred 
)
inline
2330  { // merge nontrivial sequence
2331  _Diff _Count1 = 0;
2332  _Iter_distance(_First, _Mid, _Count1);
_Iter_distance(_First, _Last, _Count)
template<class _FwdIt , class _Ty >
bool binary_search ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val 
)
inline
2345  { // merge [_First, _Mid) with [_Mid, _Last), using operator<
template<class _InIt , class _OutIt , class _Pr >
_OutIt copy_if ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Pr  _Pred 
)
inline
421  { // find first _Count * _Val satisfying _Pred
template<class _InIt , class _Pr >
iterator_traits<_InIt>::difference_type count_if ( _InIt  _First,
_InIt  _Last,
_Pr  _Pred 
)
inline
147  { // count elements that match _Val
149 
150  for (; _First != _Last; ++_First)
151  if (*_First == _Val)
unsigned int _Count
Definition: xcomplex:668
_In_ int _Val
Definition: vcruntime_string.h:62
Definition: xutility:618
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt , class _Ty , class _Pr >
pair<_FwdIt, _FwdIt> equal_range ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val,
_Pr  _Pred 
)
inline
2297  { // left larger, cut it in half and partition right to match
2298  _Count1n = _Count1 / 2, _Count2n = 0;
2299  _Firstn = _First;
2300  cliext::advance(_Firstn, _Count1n);
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
template<class _FwdIt , class _Ty >
pair<_FwdIt, _FwdIt> equal_range ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val 
)
inline
template<class _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 find_end ( _FwdIt1  _First1,
_FwdIt1  _Last1,
_FwdIt2  _First2,
_FwdIt2  _Last2,
_Pr  _Pred 
)
inline
796  { // copy omitting each matching _Val
797  for (; _First != _Last; ++_First)
798  if (!(*_First == _Val))
799  *_Dest++ = *_First;
800  return (_Dest);
_In_ int _Val
Definition: vcruntime_string.h:62
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt1 find_end ( _FwdIt1  _First1,
_FwdIt1  _Last1,
_FwdIt2  _First2,
_FwdIt2  _Last2 
)
inline
808  { // copy omitting each matching _Val
809  _STLCLRDB_RANGE(_First, _Last);
810  _STLCLRDB_POINTER(_Dest);
#define _STLCLRDB_POINTER(first)
Definition: memory:221
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 find_first_of ( _FwdIt1  _First1,
_FwdIt1  _Last1,
_FwdIt2  _First2,
_FwdIt2  _Last2,
_Pr  _Pred 
)
inline
834  { // copy omitting each element satisfying _Pred
835  _STLCLRDB_RANGE(_First, _Last);
836  _STLCLRDB_POINTER(_Dest);
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_POINTER(first)
Definition: memory:221
_OutIt remove_copy_if_unchecked(_InIt _First, _InIt _Last, _OutIt _Dest, _Pr _Pred)
Definition: algorithm:820
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt1 find_first_of ( _FwdIt1  _First1,
_FwdIt1  _Last1,
_FwdIt2  _First2,
_FwdIt2  _Last2 
)
inline
848  { // remove each matching _Val
template<class _InIt , class _Pr >
_InIt find_if ( _InIt  _First,
_InIt  _Last,
_Pr  _Pred 
)
inline
96  { // find first satisfying _Pred
97  _STLCLRDB_RANGE(_First, _Last);
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_InIt find_if_unchecked(_InIt _First, _InIt _Last, _Pr _Pred)
Definition: algorithm:85
#define _STLCLRDB_POINTER(first)
Definition: memory:221
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _Pr >
_InIt find_if_not ( _InIt  _First,
_InIt  _Last,
_Pr  _Pred 
)
inline
381  { // find first _Count * _Val satisfying _Pred, random-access iterators
template<class _InIt , class _Fn1 >
_Fn1 for_each ( _InIt  _First,
_InIt  _Last,
_Fn1  _Func 
)
inline
74  { // find first unsigned char that matches _Val
75  _STLCLRDB_RANGE(_First, _Last);
76  _First = (const unsigned char *)std::memchr(_First, _Val,
77  _Last - _First);
78  return (_First == 0 ? _Last : _First);
79  }
_In_ int _Val
Definition: vcruntime_string.h:62
_CRT_BEGIN_C_HEADER _Check_return_ _VCRTIMP void _CONST_RETURN *__cdecl memchr(_In_reads_bytes_opt_(_MaxCount) void const *_Buf, _In_ int _Val, _In_ size_t _MaxCount)
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt , class _Fn0 >
void generate ( _FwdIt  _First,
_FwdIt  _Last,
_Fn0  _Func 
)
inline
template<class _OutIt , class _Diff , class _Fn0 >
_OutIt generate_n ( _OutIt  _Dest,
_Diff  _Count,
_Fn0  _Func 
)
inline
1339  { // partition preserving order of equivalents, using _Pred
template<class _InIt1 , class _InIt2 , class _Pr >
bool includes ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_Pr  _Pred 
)
inline
3064  { // merge adjacent pairs of chunks to and from temp buffer
3065  cliext::_XChunked_merge(_First, _Last, _Tempbuf._Init(),
3066  _Chunk, _Count, _Pred);
3067  cliext::_XChunked_merge(_Tempbuf._First(), _Tempbuf._Last(), _First,
3068  _Chunk *= 2, _Count, _Pred);
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
unsigned int _Count
Definition: xcomplex:668
void _XChunked_merge(_BidIt _First, _BidIt _Last, _OutIt _Dest, _Diff _Chunk, _Diff _Count)
Definition: algorithm:2842
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt1 , class _InIt2 >
bool includes ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2 
)
inline
3079  { // sort using temp buffer for merges, using _Pred
template<class _BidIt , class _Pr >
void inplace_merge ( _BidIt  _First,
_BidIt  _Mid,
_BidIt  _Last,
_Pr  _Pred 
)
inline
2611  { // no room at bottom, rotate pivot upward
2612  if (_Plast != _Gfirst)
2614  ++_Plast;
_RanIt _Plast
Definition: algorithm:2577
_RanIt _Pfirst
Definition: algorithm:2576
_RanIt _Gfirst
Definition: algorithm:2588
void iter_swap(_FwdIt1 _Left, _FwdIt2 _Right)
Definition: algorithm:573
template<class _BidIt >
void inplace_merge ( _BidIt  _First,
_BidIt  _Mid,
_BidIt  _Last 
)
inline
2618  { // no room at top, rotate pivot downward
2619  if (--_Glast != --_Pfirst)
_RanIt _Plast
Definition: algorithm:2577
_RanIt _Pfirst
Definition: algorithm:2576
_RanIt _Glast
Definition: algorithm:2589
void iter_swap(_FwdIt1 _Left, _FwdIt2 _Right)
Definition: algorithm:573
template<class _RanIt , class _Pr >
bool is_heap ( _RanIt  _First,
_RanIt  _Last,
_Pr  _Pred 
)
inline
3816  { // swap with rightmost element that's smaller, flip suffix
3817  _BidIt _Mid = _Last;
3818  for (; !_STLCLRDB_LT(*_Next, *--_Mid); )
3819  ;
#define _STLCLRDB_LT(left, right)
Definition: memory:218
_FwdIt _Last
Definition: algorithm:1936
template<class _RanIt >
bool is_heap ( _RanIt  _First,
_RanIt  _Last 
)
inline
3835  { // permute and test for pure ascending, using operator<
template<class _RanIt , class _Pr >
_RanIt is_heap_until ( _RanIt  _First,
_RanIt  _Last,
_Pr  _Pred 
)
inline
3807  { // permute and test for pure ascending, using operator<
3808  _BidIt _Next = _Last;
3809  if (_First == _Last || _First == --_Next)
3810  return (false);
3811 
_FwdIt _Last
Definition: algorithm:1936
template<class _RanIt >
_RanIt is_heap_until ( _RanIt  _First,
_RanIt  _Last 
)
inline
3826  { // pure descending, flip all
template<class _InIt , class _Pr >
bool is_partitioned ( _InIt  _First,
_InIt  _Last,
_Pr  _Pred 
)
inline
548  { // look for one of [_First2, _Last2) satisfying _Pred with element
549  for (; _First1 != _Last1; ++_First1)
550  for (_FwdIt2 _Mid2 = _First2; _Mid2 != _Last2; ++_Mid2)
551  if (_Pred(*_First1, *_Mid2))
552  return (_First1);
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
template<class _FwdIt , class _Pr >
bool is_sorted ( _FwdIt  _First,
_FwdIt  _Last,
_Pr  _Pred 
)
inline
3864  { // pure descending, flip all
template<class _FwdIt >
bool is_sorted ( _FwdIt  _First,
_FwdIt  _Last 
)
inline
3874  { // permute and test for pure ascending, using _Pred
template<class _FwdIt , class _Pr >
_FwdIt is_sorted_until ( _FwdIt  _First,
_FwdIt  _Last,
_Pr  _Pred 
)
inline
3851  { // find rightmost element smaller than successor
3852  _BidIt _Next1 = _Next;
3853  if (_STLCLRDB_LT_PRED(_Pred, *--_Next, *_Next1))
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT_PRED(pred, left, right)
Definition: memory:219
template<class _FwdIt >
_FwdIt is_sorted_until ( _FwdIt  _First,
_FwdIt  _Last 
)
inline
3874  { // permute and test for pure ascending, using _Pred
template<class _FwdIt , class _Ty , class _Pr >
_FwdIt lower_bound ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val,
_Pr  _Pred 
)
inline
2199  { // merge backwards to _Dest, using operator<
template<class _FwdIt , class _Ty >
_FwdIt lower_bound ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val 
)
inline
2217  { // merge [_First, _Mid) with [_Mid, _Last), using operator<
template<class _RanIt , class _Pr >
void make_heap ( _RanIt  _First,
_RanIt  _Last,
_Pr  _Pred 
)
inline
2125  { // copy merging ranges, both using _Pred
2126  _STLCLRDB_ORDER_PRED(_First1, _Last1, _Pred);
2127  _STLCLRDB_ORDER_PRED(_First2, _Last2, _Pred);
2128  _STLCLRDB_POINTER(_Dest);
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_POINTER(first)
Definition: memory:221
#define _STLCLRDB_ORDER_PRED(first, last, pred)
Definition: memory:224
template<class _RanIt >
void make_heap ( _RanIt  _First,
_RanIt  _Last 
)
inline
2141  { // rotate [_First, _Last) using temp buffer
template<class _Ty , class _Pr >
constexpr const _Ty&() max ( const _Ty &  _Left,
const _Ty &  _Right,
_Pr  _Pred 
)
inline
template<class _Ty , class _Pr >
_Ty() max ( _XSTD initializer_list< _Ty >  _Ilist,
_Pr  _Pred 
)
inline
3610  { // take set [_First2, _Last2) from [_First1, _Last1), using operator<
template<class _Ty >
_Ty() max ( _XSTD initializer_list< _Ty >  _Ilist)
inline
3626  { // take set [_First2, _Last2) from [_First1, _Last1), using _Pred
template<class _FwdIt , class _Pr >
_FwdIt max_element ( _FwdIt  _First,
_FwdIt  _Last,
_Pr  _Pred 
)
inline
3497  { // OR sets [_First1, _Last1) and [_First2, _Last2), using _Pred
template<class _FwdIt >
_FwdIt max_element ( _FwdIt  _First,
_FwdIt  _Last 
)
inline
3497  { // OR sets [_First1, _Last1) and [_First2, _Last2), using _Pred
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt merge ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest,
_Pr  _Pred 
)
inline
2435  { // merge [_First, _Mid) with [_Mid, _Last), using _Pred
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt merge ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest 
)
inline
2454  { // buffer too small, divide and conquer
2455  _BidIt _Firstn, _Lastn;
template<class _Ty , class _Pr >
constexpr const _Ty&() min ( const _Ty &  _Left,
const _Ty &  _Right,
_Pr  _Pred 
)
inline
template<class _Ty , class _Pr >
_Ty() min ( _XSTD initializer_list< _Ty >  _Ilist,
_Pr  _Pred 
)
inline
3643  { // take set [_First2, _Last2) from [_First1, _Last1), using _Pred
template<class _Ty >
_Ty() min ( _XSTD initializer_list< _Ty >  _Ilist)
inline
3658  { // XOR sets [_First1, _Last1) and [_First2, _Last2), using operator<
template<class _FwdIt , class _Pr >
_FwdIt min_element ( _FwdIt  _First,
_FwdIt  _Last,
_Pr  _Pred 
)
inline
3515  { // OR sets [_First1, _Last1) and [_First2, _Last2), using _Pred
3516  _STLCLRDB_ORDER_PRED(_First1, _Last1, _Pred);
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_ORDER_PRED(first, last, pred)
Definition: memory:224
template<class _FwdIt >
_FwdIt min_element ( _FwdIt  _First,
_FwdIt  _Last 
)
inline
3530  { // AND sets [_First1, _Last1) and [_First2, _Last2), using operator<
template<class _Ty , class _Pr >
constexpr pair<const _Ty&, const _Ty&> minmax ( const _Ty &  _Left,
const _Ty &  _Right,
_Pr  _Pred 
)
inline
3675  { // XOR sets [_First1, _Last1) and [_First2, _Last2), using operator<
template<class _Ty , class _Pr >
pair<_Ty, _Ty> minmax ( _XSTD initializer_list< _Ty >  _Ilist,
_Pr  _Pred 
)
inline
3675  { // XOR sets [_First1, _Last1) and [_First2, _Last2), using operator<
3676  _STLCLRDB_ORDER(_First1, _Last1);
3677  _STLCLRDB_ORDER(_First2, _Last2);
3678  _STLCLRDB_POINTER(_Dest);
3680  _Unchecked(_First1), _Unchecked(_Last1),
#define _STLCLRDB_ORDER(first, last)
Definition: memory:223
#define _STLCLRDB_POINTER(first)
Definition: memory:221
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
_OutIt set_symmetric_difference_unchecked(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
Definition: algorithm:3656
template<class _Ty >
constexpr pair<const _Ty&, const _Ty&> minmax ( const _Ty &  _Left,
const _Ty &  _Right 
)
inline
3691  { // XOR sets [_First1, _Last1) and [_First2, _Last2), using _Pred
template<class _Ty >
pair<_Ty, _Ty> minmax ( _XSTD initializer_list< _Ty >  _Ilist)
inline
template<class _FwdIt , class _Pr >
pair<_FwdIt, _FwdIt> minmax_element ( _FwdIt  _First,
_FwdIt  _Last,
_Pr  _Pred 
)
inline
3579  { // AND sets [_First1, _Last1) and [_First2, _Last2), using _Pred
template<class _FwdIt >
pair<_FwdIt, _FwdIt> minmax_element ( _FwdIt  _First,
_FwdIt  _Last 
)
inline
3594  { // take set [_First2, _Last2) from [_First1, _Last1), using operator<
template<class _InIt1 , class _InIt2 , class _Pr >
pair<_InIt1, _InIt2> mismatch ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_Pr  _Pred 
)
inline
221  { // find first [_First2, _Last2) match
template<class _InIt1 , class _InIt2 >
pair<_InIt1, _InIt2> mismatch ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2 
)
inline
244  { // room for match, try it
template<class _InIt1 , class _InIt2 , class _Pr >
pair<_InIt1, _InIt2> mismatch ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_Pr  _Pred 
)
inline
280  { // found start of possible match, check it out
281  _FwdIt1 _Mid1 = _First1;
282 
283  for (_Diff2 _Count1 = _Count; ; )
284  if (--_Count1 == 0)
285  return (_First1); // found rest of match, report it
286  else if (++_Mid1 == _Last1)
287  return (_Last1); // short match at end
unsigned int _Count
Definition: xcomplex:668
template<class _InIt1 , class _InIt2 >
pair<_InIt1, _InIt2> mismatch ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2 
)
inline
301  { // find first _Count * _Val match, random-access iterators
template<class _BidIt , class _Pr >
bool next_permutation ( _BidIt  _First,
_BidIt  _Last,
_Pr  _Pred 
)
inline
3732  { // find largest element, using operator<
3733  _STLCLRDB_RANGE(_First, _Last);
3735  _Unchecked(_First), _Unchecked(_Last)));
_FwdIt max_element_unchecked(_FwdIt _First, _FwdIt _Last)
Definition: algorithm:3720
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _BidIt >
bool next_permutation ( _BidIt  _First,
_BidIt  _Last 
)
inline
3742  { // find largest element, using _Pred
template<class _InIt , class _Pr >
bool none_of ( _InIt  _First,
_InIt  _Last,
_Pr  _Pred 
)
inline
353  { // find first _Count * _Val satisfying _Pred, forward iterators
354  if (_Count <= 0)
355  return (_First1);
unsigned int _Count
Definition: xcomplex:668
template<class _RanIt , class _Pr >
void nth_element ( _RanIt  _First,
_RanIt  _Nth,
_RanIt  _Last,
_Pr  _Pred 
)
inline
3021  { // copy merging pairs of adjacent chunks
3022  _BidIt _Mid1 = _First;
3023  cliext::advance(_Mid1, _Chunk);
3024  _BidIt _Mid2 = _Mid1;
3025  cliext::advance(_Mid2, _Chunk);
3026 
3027  _Dest = cliext::merge_unchecked(_First, _Mid1,
3028  _Mid1, _Mid2, _Dest, _Pred);
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_OutIt merge_unchecked(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
Definition: algorithm:2073
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
template<class _RanIt >
void nth_element ( _RanIt  _First,
_RanIt  _Nth,
_RanIt  _Last 
)
inline
3036  { // copy merging whole and partial last chunk
template<class _RanIt , class _Pr >
void partial_sort ( _RanIt  _First,
_RanIt  _Mid,
_RanIt  _Last,
_Pr  _Pred 
)
inline
2932  { // sort halves and merge
2933  _Diff _Count2 = (_Count + 1) / 2;
2934  _BidIt _Mid = _First;
2935  cliext::advance(_Mid, _Count2);
2936 
2937  if (_Count2 <= _Tempbuf._Maxlen())
unsigned int _Count
Definition: xcomplex:668
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
template<class _RanIt >
void partial_sort ( _RanIt  _First,
_RanIt  _Mid,
_RanIt  _Last 
)
inline
2945  { // temp buffer not big enough, divide and conquer
template<class _InIt , class _RanIt , class _Pr >
_RanIt partial_sort_copy ( _InIt  _First1,
_InIt  _Last1,
_RanIt  _First2,
_RanIt  _Last2,
_Pr  _Pred 
)
inline
2978  { // temp buffer not big enough, divide and conquer
2979  cliext::_XStable_sort(_First, _Mid, _Count2, _Tempbuf);
2980  cliext::_XStable_sort(_Mid, _Last, _Count - _Count2, _Tempbuf);
2981  }
2982 
2983  cliext::_XBuffered_merge(_First, _Mid, _Last,
unsigned int _Count
Definition: xcomplex:668
void _XStable_sort(_BidIt _First, _BidIt _Last, _Diff _Count, _Temp_iterator< _Ty > _Tempbuf)
Definition: algorithm:2926
void _XBuffered_merge(_BidIt _First, _BidIt _Mid, _BidIt _Last, _Diff _Count1, _Diff _Count2, _Temp_iterator< _Ty > _Tempbuf)
Definition: algorithm:2214
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _RanIt >
_RanIt partial_sort_copy ( _InIt  _First1,
_InIt  _Last1,
_RanIt  _First2,
_RanIt  _Last2 
)
inline
2991  { // sort preserving order of equivalents, using operator<
Definition: xutility:618
template<class _FwdIt , class _Pr >
_FwdIt partition ( _FwdIt  _First,
_FwdIt  _Last,
_Pr  _Pred 
)
inline
1858  { // find first element not before _Val, using _Pred
1859  _STLCLRDB_ORDER_PRED(_First, _Last, _Pred);
1861  _Unchecked(_First), _Unchecked(_Last), _Val, _Pred));
1862  }
1863 
_FwdIt lower_bound_unchecked(_FwdIt _First, _FwdIt _Last, _Ty%_Val)
Definition: algorithm:1797
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_In_ int _Val
Definition: vcruntime_string.h:62
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_ORDER_PRED(first, last, pred)
Definition: memory:224
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _OutIt1 , class _OutIt2 , class _Pr >
pair<_OutIt1, _OutIt2> partition_copy ( _InIt  _First,
_InIt  _Last,
_OutIt1  _Dest1,
_OutIt2  _Dest2,
_Pr  _Pred 
)
inline
477  { // find last [_First2, _Last2) satisfying _Pred
480 
Definition: xutility:618
template<class _FwdIt , class _Pr >
_FwdIt partition_point ( _FwdIt  _First,
_FwdIt  _Last,
_Pr  _Pred 
)
inline
583  { // swap [_First1, _Last1) with [_First2, ...)
584  for (; _First1 != _Last1; ++_First1, ++_First2)
585  cliext::iter_swap(_First1, _First2);
void iter_swap(_FwdIt1 _Left, _FwdIt2 _Right)
Definition: algorithm:573
template<class _RanIt , class _Pr >
void pop_heap ( _RanIt  _First,
_RanIt  _Last,
_Pr  _Pred 
)
inline
2091  { // copy merging ranges, both using operator<
2092  _STLCLRDB_ORDER(_First1, _Last1);
2093  _STLCLRDB_ORDER(_First2, _Last2);
2094  _STLCLRDB_POINTER(_Dest);
2095  return (cliext::merge_unchecked(
_OutIt merge_unchecked(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
Definition: algorithm:2073
#define _STLCLRDB_ORDER(first, last)
Definition: memory:223
#define _STLCLRDB_POINTER(first)
Definition: memory:221
template<class _RanIt >
void pop_heap ( _RanIt  _First,
_RanIt  _Last 
)
inline
2108  { // copy merging ranges, both using _Pred
template<class _BidIt , class _Pr >
bool prev_permutation ( _BidIt  _First,
_BidIt  _Last,
_Pr  _Pred 
)
inline
3785  { // find smallest element, using _Pred
template<class _BidIt >
bool prev_permutation ( _BidIt  _First,
_BidIt  _Last 
)
inline
3785  { // find smallest element, using _Pred
3786  _FwdIt _Found = _First;
3787  if (_First != _Last)
_FwdIt _Last
Definition: algorithm:1936
template<class _RanIt , class _Pr >
void push_heap ( _RanIt  _First,
_RanIt  _Last,
_Pr  _Pred 
)
inline
2021  { // find range equivalent to _Val, using _Pred
template<class _RanIt >
void push_heap ( _RanIt  _First,
_RanIt  _Last 
)
inline
2032  { // test if _Val equivalent to some element, using operator<
template<class _FwdIt , class _Ty >
_FwdIt remove ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val 
)
inline
1472  { // test if range is a heap ordered by _Pred
template<class _InIt , class _OutIt , class _Ty >
_OutIt remove_copy ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
const _Ty &  _Val 
)
inline
1382  { // partition preserving order of equivalents, using _Pred
template<class _InIt , class _OutIt , class _Pr >
_OutIt remove_copy_if ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Pr  _Pred 
)
inline
1425  { // partition preserving order of equivalents, using _Pred
1428 
Definition: xutility:618
template<class _FwdIt , class _Pr >
_FwdIt remove_if ( _FwdIt  _First,
_FwdIt  _Last,
_Pr  _Pred 
)
inline
1499  { // percolate _Hole to _Top or where _Val belongs, using operator<
template<class _FwdIt , class _Ty >
void replace ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Oldval,
const _Ty &  _Newval 
)
inline
1135  { // rotate [_First, _Last), forward iterators
template<class _InIt , class _OutIt , class _Ty >
_OutIt replace_copy ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
const _Ty &  _Oldval,
const _Ty &  _Newval 
)
inline
1201  { // rotate [_First, _Last)
1202  _STLCLRDB_RANGE(_First, _Mid);
1203  _STLCLRDB_RANGE(_Mid, _Last);
1204  if (_First != _Mid && _Mid != _Last)
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _OutIt , class _Pr , class _Ty >
_OutIt replace_copy_if ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Pr  _Pred,
const _Ty &  _Val 
)
inline
1279  { // shuffle [_First, _Last) using random function _Func
1281 
Definition: xutility:618
template<class _FwdIt , class _Pr , class _Ty >
void replace_if ( _FwdIt  _First,
_FwdIt  _Last,
_Pr  _Pred,
const _Ty &  _Val 
)
inline
1152  { // rotate [_First, _Last), bidirectional iterators
1153  cliext::reverse(_First, _Mid);
1154  cliext::reverse(_Mid, _Last);
void reverse(_BidIt _First, _BidIt _Last)
Definition: algorithm:1105
_FwdIt _Last
Definition: algorithm:1936
template<class _BidIt , class _OutIt >
_OutIt reverse_copy ( _BidIt  _First,
_BidIt  _Last,
_OutIt  _Dest 
)
inline
1671  { // pop *_First to *_Dest and reheap, using _Pred
1673 
Definition: xutility:618
template<class _FwdIt , class _OutIt >
_OutIt rotate_copy ( _FwdIt  _First,
_FwdIt  _Mid,
_FwdIt  _Last,
_OutIt  _Dest 
)
inline
1722  { // make [_First, _Last) into a heap, using operator<
1723  _STLCLRDB_RANGE(_First, _Last);
1725  }
1726 
void make_heap_unchecked(_RanIt _First, _RanIt _Last)
Definition: algorithm:1702
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 search ( _FwdIt1  _First1,
_FwdIt1  _Last1,
_FwdIt2  _First2,
_FwdIt2  _Last2,
_Pr  _Pred 
)
inline
644  { // transform [_First1, _Last1) and [_First2, _Last2) with _Func
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt1 search ( _FwdIt1  _First1,
_FwdIt1  _Last1,
_FwdIt2  _First2,
_FwdIt2  _Last2 
)
inline
659  { // replace each matching _Oldval with _Newval
template<class _FwdIt , class _Diff , class _Ty , class _Pr >
_FwdIt search_n ( _FwdIt  _First,
_FwdIt  _Last,
_Diff  _Count,
const _Ty &  _Val,
_Pr  _Pred 
)
inline
743  { // copy replacing each satisfying _Pred with _Val
744  _STLCLRDB_RANGE(_First, _Last);
745  _STLCLRDB_POINTER(_Dest);
#define _STLCLRDB_POINTER(first)
Definition: memory:221
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt , class _Diff , class _Ty >
_FwdIt search_n ( _FwdIt  _First,
_FwdIt  _Last,
_Diff  _Count,
const _Ty &  _Val 
)
inline
756  { // replace [_First, _Last) with _Func()
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt set_difference ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest,
_Pr  _Pred 
)
inline
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt set_difference ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest 
)
inline
3341  { // order Nth element, using operator<
3342  for (; _ISort::_Max < _Last - _First; )
3343  { // divide and conquer, ordering partition containing Nth
3344  _PAIR_TYPE(_RanIt) _Mid =
3345  cliext::_XUnguarded_partition(_First, _Last);
3346 
3347  if (_Mid.second <= _Nth)
#define _PAIR_TYPE(iter_t)
Definition: memory:31
if(__pUnknown!=*__ppTargetUnknown)
Definition: vccorlib.h:399
Definition: adapter:7
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt set_intersection ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest,
_Pr  _Pred 
)
inline
3228  { // order [First, _Last) up to _Mid, using _Pred
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt set_intersection ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest 
)
inline
3256  { // copy [First1, _Last1) into [_First2, _Last2), using operator<
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt set_symmetric_difference ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest,
_Pr  _Pred 
)
inline
3420  { // test if all [_First1, _Last1) in [_First2, _Last2), using operator<
3421  _STLCLRDB_ORDER(_First1, _Last1);
3422  _STLCLRDB_ORDER(_First2, _Last2);
#define _STLCLRDB_ORDER(first, last)
Definition: memory:223
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt set_symmetric_difference ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest 
)
inline
3450  { // test if set [_First1, _Last1) in [_First2, _Last2), using _Pred
3451  _STLCLRDB_ORDER_PRED(_First1, _Last1, _Pred);
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_ORDER_PRED(first, last, pred)
Definition: memory:224
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt set_union ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest,
_Pr  _Pred 
)
inline
3143  { // sort preserving order of equivalents, using _Pred
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt set_union ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest 
)
inline
3160  { // temp buffer not big enough, divide and conquer
3161  cliext::_XStable_sort(_First, _Mid, _Count2, _Tempbuf,
void _XStable_sort(_BidIt _First, _BidIt _Last, _Diff _Count, _Temp_iterator< _Ty > _Tempbuf)
Definition: algorithm:2926
template<class _RanIt , class _Urng >
void shuffle ( _RanIt  _First,
_RanIt  _Last,
_Urng &&  _Func 
)
inline
1768  { // order heap by repeatedly popping, using operator<
1769  _STLCLRDB_RANGE(_First, _Last);
1770  _STLCLRDB_HEAP(_First, _Last);
1772  }
#define _STLCLRDB_HEAP(first, last)
Definition: algorithm:1489
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
void sort_heap_unchecked(_RanIt _First, _RanIt _Last)
Definition: algorithm:1760
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _RanIt , class _Pr >
void sort ( _RanIt  _First,
_RanIt  _Last,
_Pr  _Pred 
)
inline
2793  { // order [_First, _Last), using _Pred
template<class _RanIt >
void sort ( _RanIt  _First,
_RanIt  _Last 
)
inline
2793  { // order [_First, _Last), using _Pred
template<class _RanIt , class _Pr >
void sort_heap ( _RanIt  _First,
_RanIt  _Last,
_Pr  _Pred 
)
inline
2150  { // buffer right partition, then copy parts
2151  cliext::copy_unchecked(_Mid, _Last, _Tempbuf._Init());
2152  cliext::copy_backward_unchecked(_First, _Mid, _Last);
2153  return (cliext::copy_unchecked(
2154  _Tempbuf._First(), _Tempbuf._Last(), _First));
_BidIt2 copy_backward_unchecked(_BidIt1 _First, _BidIt1 _Last, _BidIt2 _Dest)
Definition: memory:514
_OutIt copy_unchecked(_InIt _First, _InIt _Last, _OutIt _Dest)
Definition: memory:490
_FwdIt _Last
Definition: algorithm:1936
template<class _RanIt >
void sort_heap ( _RanIt  _First,
_RanIt  _Last 
)
inline
2170  { // rotate [_First, _Last) using temp buffer
template<class _BidIt , class _Pr >
_BidIt stable_partition ( _BidIt  _First,
_BidIt  _Last,
_Pr  _Pred 
)
inline
1951  { // range begins above _Mid, loop
1952  _First = ++_Mid;
1953  _Count -= _Count2 + 1;
1954  }
1955  else if (_Val < *_Mid)
unsigned int _Count
Definition: xcomplex:668
_In_ int _Val
Definition: vcruntime_string.h:62
template<class _BidIt , class _Pr >
void stable_sort ( _BidIt  _First,
_BidIt  _Last,
_Pr  _Pred 
)
inline
2901  { // sort using temp buffer for merges, using operator<
template<class _BidIt >
void stable_sort ( _BidIt  _First,
_BidIt  _Last 
)
inline
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt2 swap_ranges ( _FwdIt1  _First1,
_FwdIt1  _Last1,
_FwdIt2  _Dest 
)
inline
888  { // remove each satisfying _Pred
889  _STLCLRDB_RANGE(_First, _Last);
_FwdIt remove_if_unchecked(_FwdIt _First, _FwdIt _Last, _Pr _Pred)
Definition: algorithm:871
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_POINTER(first)
Definition: memory:221
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _OutIt , class _Fn1 >
_OutIt transform ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Fn1  _Func 
)
inline
964  { // copy compressing pairs that match, forward iterators
template<class _InIt1 , class _InIt2 , class _OutIt , class _Fn2 >
_OutIt transform ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_OutIt  _Dest,
_Fn2  _Func 
)
inline
1063  { // copy compressing pairs satisfying _Pred
1064  return (_First == _Last ? _Dest
1065  : _Unique_copy(_First, _Last, _Dest, _Pred, _Iter_category(_First)));
1066  }
1067 
1068 template<class _InIt,
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
iterator_traits< _Iter_t >::iterator_category _Iter_category(_Iter_t)
Definition: xutility:654
_OutIt _Unique_copy(_RanIt _First, _RanIt _Last, _OutIt _Dest, _Pr _Pred, random_access_iterator_tag)
Definition: algorithm:1051
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt , class _Pr >
_FwdIt unique ( _FwdIt  _First,
_FwdIt  _Last,
_Pr  _Pred 
)
inline
1525  { // push *(_Last - 1) onto heap at [_First, _Last - 1), using operator<
template<class _FwdIt >
_FwdIt unique ( _FwdIt  _First,
_FwdIt  _Last 
)
inline
1531  { // check and push non-empty heap+addition
template<class _InIt , class _OutIt , class _Pr >
_OutIt unique_copy ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Pr  _Pred 
)
inline
1591  { // percolate _Hole to _Bottom, then push _Val, using operator<
1592  _Diff _Top = _Hole;
1593  _Diff _Idx = 2 * _Hole + 2;
1594 
1595  for (; _Idx < _Bottom; _Idx = 2 * _Idx + 2)
template<class _InIt , class _OutIt >
_OutIt unique_copy ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest 
)
inline
1614  { // pop *_First to *_Dest and reheap, using operator<
1616 
1617  *_Dest = *_First;
1618  cliext::_XAdjust_heap(_First, _Diff(0), _Diff(_Last - _First), _Val);
_In_ int _Val
Definition: vcruntime_string.h:62
Definition: xutility:618
void _XAdjust_heap(_RanIt _First, _Diff _Hole, _Diff _Bottom, _Ty _Val)
Definition: algorithm:1590
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt , class _Ty , class _Pr >
_FwdIt upper_bound ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val,
_Pr  _Pred 
)
inline
2241  { // left larger, cut it in half and partition right to match
2242  _Count1n = _Count1 / 2, _Count2n = 0;
2243  _Firstn = _First;
2244  cliext::advance(_Firstn, _Count1n);
2245  _Lastn = cliext::lower_bound_unchecked(_Mid, _Last, *_Firstn);
_FwdIt lower_bound_unchecked(_FwdIt _First, _FwdIt _Last, _Ty%_Val)
Definition: algorithm:1797
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt , class _Ty >
_FwdIt upper_bound ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val 
)
inline

Variable Documentation

_STD_BEGIN const int _ISORT_MAX = 32
constexpr const _Ty&() _Left
constexpr const _Ty&() _Left
Initial value:
{
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
constexpr const _Ty &() _Left
Definition: algorithm:3590
#define _DEBUG_LT_PRED(pred, x, y)
Definition: xutility:817
constexpr const _Ty &() _Right
Definition: algorithm:3591
const _Ty & _Right
Initial value:
{
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
constexpr const _Ty &() _Left
Definition: algorithm:3590
#define _DEBUG_LT_PRED(pred, x, y)
Definition: xutility:817
constexpr const _Ty &() _Right
Definition: algorithm:3591
constexpr const _Ty&() _Right