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

struct  _Temporary_buffer< _Ty >
 
struct  _Temporary_range< _Ty >
 
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 >
_CONSTEXPR14 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 >
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_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_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_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_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_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 _FwdIt , class _OutIt , class _Pr >
_OutIt _Unique_copy_unchecked (_FwdIt _First, _FwdIt _Last, _OutIt _Dest, _Pr &_Pred, true_type, _Any_tag)
 
template<class _InIt , class _FwdIt , class _Pr >
_FwdIt _Unique_copy_unchecked (_InIt _First, _InIt _Last, _FwdIt _Dest, _Pr &_Pred, false_type, true_type)
 
template<class _InIt , class _OutIt , class _Pr >
_OutIt _Unique_copy_unchecked (_InIt _First, _InIt _Last, _OutIt _Dest, _Pr &_Pred, false_type, false_type)
 
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_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_copy (_FwdIt _First, _FwdIt _Mid, _FwdIt _Last, _OutIt _Dest)
 
template<class _RanIt , class _RngFn >
void _Random_shuffle_unchecked (_RanIt _First, _RanIt _Last, _RngFn &_RngFunc)
 
template<class _RanIt , class _RngFn >
void _Random_shuffle1 (_RanIt _First, _RanIt _Last, _RngFn &_RngFunc)
 
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 (const _BidIt _First, const _BidIt _Mid, const _BidIt _Last, const _Diff _Count1, const _Diff _Count2, _Temporary_buffer< _Ty > &_Temp_buf)
 
template<class _BidIt , class _Pr , class _Diff , class _Ty >
pair< _BidIt, _Diff > _Stable_partition_unchecked1 (_BidIt _First, _BidIt _Last, _Pr &_Pred, const _Diff _Count, _Temporary_buffer< _Ty > &_Temp_buf)
 
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)
 
_Distance_unknown _Idl_dist_add (_Distance_unknown, _Distance_unknown)
 
template<class _Diff1 >
_Distance_unknown _Idl_dist_add (_Diff1, _Distance_unknown)
 
template<class _Diff2 >
_Distance_unknown _Idl_dist_add (_Distance_unknown, _Diff2)
 
template<class _Diff1 , class _Diff2 >
auto _Idl_dist_add (_Diff1 _Lhs, _Diff2 _Rhs)
 
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, _Temporary_buffer< _Ty > &_Temp_buf, _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, _Temporary_buffer< _Ty > &_Temp_buf, _Pr &_Pred)
 
template<class _BidIt , class _Diff , class _Ty , class _Pr >
void _Stable_sort_unchecked1 (_BidIt _First, _BidIt _Last, _Diff _Count, _Temporary_buffer< _Ty > &_Temp_buf, _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 >
_CONSTEXPR14 _FwdIt _Max_element_unchecked (_FwdIt _First, _FwdIt _Last, _Pr &_Pred)
 
template<class _FwdIt , class _Pr >
_CONSTEXPR14 _FwdIt max_element (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _FwdIt >
_CONSTEXPR14 _FwdIt max_element (_FwdIt _First, _FwdIt _Last)
 
template<class _FwdIt , class _Pr >
_CONSTEXPR14 _FwdIt _Min_element_unchecked (_FwdIt _First, _FwdIt _Last, _Pr &_Pred)
 
template<class _FwdIt , class _Pr >
_CONSTEXPR14 _FwdIt min_element (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _FwdIt >
_CONSTEXPR14 _FwdIt min_element (_FwdIt _First, _FwdIt _Last)
 
template<class _FwdIt , class _Pr >
_CONSTEXPR14 pair< _FwdIt, _FwdIt > _Minmax_element_unchecked (_FwdIt _First, _FwdIt _Last, _Pr &_Pred)
 
template<class _FwdIt , class _Pr >
_CONSTEXPR14 pair< _FwdIt, _FwdIt > minmax_element (_FwdIt _First, _FwdIt _Last, _Pr _Pred)
 
template<class _FwdIt >
_CONSTEXPR14 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 >
_CONSTEXPR14 _Ty() max (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 >
_CONSTEXPR14 _Ty() max (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 >
_CONSTEXPR14 _Ty() min (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 >
_CONSTEXPR14 _Ty() min (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 >
_CONSTEXPR14 pair< _Ty, _Ty > minmax (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 >
_CONSTEXPR14 pair< _Ty, _Ty > minmax (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 charcliext::find (const char *_First, const char *_Last, int _Val)
 
const signed charcliext::find (const signed char *_First, const signed char *_Last, int _Val)
 
const unsigned charcliext::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
184  { // count elements satisfying _Pred
185  _STLCLRDB_RANGE(_First, _Last);
188  _Pred));
189  }
190 
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_POINTER(first)
Definition: memory:221
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
iterator_traits< _InIt >::difference_type count_if_unchecked(_InIt _First, _InIt _Last, _Pr _Pred)
Definition: algorithm:170
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _Pr >
bool _All_of_unchecked ( _InIt  _First,
_InIt  _Last,
_Pr &  _Pred 
)
inline
359  { // found start of possible match, check it out
360  _FwdIt1 _Mid1 = _First1;
361 
362  for (_Diff2 _Count1 = _Count; ; )
363  if (--_Count1 == 0)
364  return (_First1); // found rest of match, report it
365  else if (++_Mid1 == _Last1)
_Diff _Count
Definition: algorithm:1941
template<class _InIt , class _Pr >
bool _Any_of_unchecked ( _InIt  _First,
_InIt  _Last,
_Pr &  _Pred 
)
inline
381  { // find first _Count * _Val satisfying _Pred, random-access iterators
382  if (_Count <= 0)
383  return (_First1);
384 
_Diff _Count
Definition: algorithm:1941
template<class _FwdIt , class _Ty , class _Pr >
bool _Binary_search_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val,
_Pr &  _Pred 
)
inline
2448  { // buffer right partition, then merge
2449  cliext::copy_unchecked(_Mid, _Last, _Tempbuf._Init());
2450  cliext::_XMerge_backward(_First, _Mid,
2451  _Tempbuf._First(), _Tempbuf._Last(), _Last, _Pred);
2452  }
_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 _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
2611  { // no room at bottom, rotate pivot upward
2612  if (_Plast != _Gfirst)
2614  ++_Plast;
2616  }
2617  else if (_Gfirst == _Last)
2618  { // no room at top, rotate pivot downward
2619  if (--_Glast != --_Pfirst)
2622  }
2623  else
2625  }
2626  }
2627 
2628 template<class _RanIt,
2629  class _Diff> inline
2630  void _XSort(_RanIt _First, _RanIt _Last, _Diff _Ideal)
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 =
_RanIt _Plast
Definition: algorithm:2577
#define _PAIR_TYPE(iter_t)
Definition: memory:31
_RanIt _Pfirst
Definition: algorithm:2576
_RanIt _Glast
Definition: algorithm:2589
void _XSort(_RanIt _First, _RanIt _Last, _Diff _Ideal, _Pr _Pred)
Definition: algorithm:2792
_RanIt _Gfirst
Definition: algorithm:2588
void iter_swap(_FwdIt1 _Left, _FwdIt2 _Right)
Definition: algorithm:573
_Diff _Count
Definition: algorithm:1941
_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,
_Temporary_buffer< _Ty > &  _Temp_buf,
_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 
2970  if (_Count2 <= _Tempbuf._Maxlen())
2971  { // temp buffer big enough, sort each half using buffer
2972  cliext::_XBuffered_merge_sort(_First, _Mid, _Count2,
2973  _Tempbuf);
2974  cliext::_XBuffered_merge_sort(_Mid, _Last, _Count - _Count2,
2975  _Tempbuf);
2976  }
2977  else
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 
void _XBuffered_merge_sort(_BidIt _First, _BidIt _Last, _Diff _Count, _Temp_iterator< _Ty > _Tempbuf)
Definition: algorithm:2872
void _XStable_sort(_BidIt _First, _BidIt _Last, _Diff _Count, _Temp_iterator< _Ty > _Tempbuf)
Definition: algorithm:2926
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
_Diff _Count
Definition: algorithm:1941
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 _Buffered_merge_unchecked ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest,
_Pr &  _Pred,
bool  _In_place = false 
)
inline
2645  { // loop on first half
2646  cliext::_XSort(_Mid.second, _Last, _Ideal);
2647  _Last = _Mid.first;
2648  }
2649  }
2650 
2651  if (_ISort::_Max < _Count)
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<
2663  cliext::_XSort(_First, _Last, _Last - _First);
2664  }
2665 
2666 template<class _RanIt> inline
void sort_unchecked(_RanIt _First, _RanIt _Last, _Pr _Pred)
Definition: algorithm:2824
void make_heap_unchecked(_RanIt _First, _RanIt _Last)
Definition: algorithm:1702
void sort_heap_unchecked(_RanIt _First, _RanIt _Last)
Definition: algorithm:1760
_Diff _Count
Definition: algorithm:1941
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 _BidIt , class _Diff , class _Ty , class _Pr >
void _Buffered_merge_unchecked ( _BidIt  _First,
_BidIt  _Mid,
_BidIt  _Last,
_Diff  _Count1,
_Diff  _Count2,
_Temporary_buffer< _Ty > &  _Temp_buf,
_Pr &  _Pred 
)
inline
2677  { // insertion sort [_First, _Last), using _Pred
2679 
2680  if (_First != _Last)
2681  for (_BidIt _Next = _First; ++_Next != _Last; )
2682  { // order next element
2683  _BidIt _Next1 = _Next;
2684  _Ty _Val = *_Next;
2685 
2686  if (_STLCLRDB_LT_PRED(_Pred, _Val, *_First))
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);
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT_PRED(pred, left, right)
Definition: memory:219
void _XMedian(_RanIt _First, _RanIt _Mid, _RanIt _Last, _Pr _Pred)
Definition: algorithm:2716
Definition: xutility:620
char int *typedef int(__CRTDECL *_CRT_REPORT_HOOKW)(int
Definition: crtdbg.h:45
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 const _Ty _Val
Definition: algorithm:1938
_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 ( const _BidIt  _First,
const _BidIt  _Mid,
const _BidIt  _Last,
const _Diff  _Count1,
const _Diff  _Count2,
_Temporary_buffer< _Ty > &  _Temp_buf 
)
inline
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
1936  _PAIR_TYPE(_FwdIt) equal_range_unchecked(_FwdIt _First, _FwdIt _Last,
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT_PRED(pred, left, right)
Definition: memory:219
#define _PAIR_TYPE(iter_t)
Definition: memory:31
_FwdIt upper_bound(_FwdIt _First, _FwdIt _Last, const _Ty &_Val, _Pr _Pred)
Definition: algorithm:2370
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_ORDER_PRED(first, last, pred)
Definition: memory:224
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
_Diff _Count
Definition: algorithm:1941
_FwdIt const _Ty _Val
Definition: algorithm:1938
_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
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())
2938  { // temp buffer big enough, sort each half using buffer
2939  cliext::_XBuffered_merge_sort(_First, _Mid, _Count2,
2940  _Tempbuf);
2941  cliext::_XBuffered_merge_sort(_Mid, _Last, _Count - _Count2,
2942  _Tempbuf);
2943  }
2944  else
2945  { // temp buffer not big enough, divide and conquer
2946  cliext::_XStable_sort(_First, _Mid, _Count2, _Tempbuf);
2947  cliext::_XStable_sort(_Mid, _Last, _Count - _Count2, _Tempbuf);
2948  }
2949 
2950  cliext::_XBuffered_merge(_First, _Mid, _Last,
2951  _Count2, _Count - _Count2, _Tempbuf); // merge sorted halves
2952  }
2953  }
2954 
void _XBuffered_merge_sort(_BidIt _First, _BidIt _Last, _Diff _Count, _Temp_iterator< _Ty > _Tempbuf)
Definition: algorithm:2872
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
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
_Diff _Count
Definition: algorithm:1941
_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
463  { // find last [_First2, _Last2) match
template<class _InIt , class _OutIt , class _Pr >
_OutIt _Copy_if_unchecked ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Pr &  _Pred 
)
inline
445  { // room for match, try it
446  _FwdIt1 _Mid1 = _First1;
447  for (_FwdIt2 _Mid2 = _First2; ; ++_Mid1)
template<class _InIt , class _Pr >
iterator_traits<_InIt>::difference_type _Count_if_unchecked ( _InIt  _First,
_InIt  _Last,
_Pr &  _Pred 
)
inline
221  { // find first [_First2, _Last2) match
template<class _FwdIt , class _Ty , class _Pr >
pair<_FwdIt, _FwdIt> _Equal_range_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val,
_Pr &  _Pred 
)
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
2398  _BidIt _Firstn, _Lastn;
2399  _Diff _Count1n, _Count2n;
2400  if (_Count2 < _Count1)
2401  { // left larger, cut it in half and partition right to match
2402  _Count1n = _Count1 / 2, _Count2n = 0;
2403  _Firstn = _First;
2404  cliext::advance(_Firstn, _Count1n);
2405  _Lastn = cliext::lower_bound_unchecked(_Mid, _Last,
2406  *_Firstn, _Pred);
2407  _Iter_distance(_Mid, _Lastn, _Count2n);
2408  }
2409  else
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,
2415  *_Lastn, _Pred);
2416  _Iter_distance(_First, _Firstn, _Count1n);
2417  }
2418  _BidIt _Midn = cliext::_XBuffered_rotate(_Firstn, _Mid, _Lastn,
2419  _Count1 - _Count1n, _Count2n, _Tempbuf); // rearrange middle
_FwdIt lower_bound_unchecked(_FwdIt _First, _FwdIt _Last, _Ty%_Val)
Definition: algorithm:1797
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_BidIt _XBuffered_rotate(_BidIt _First, _BidIt _Mid, _BidIt _Last, _Diff _Count1, _Diff _Count2, _Temp_iterator< _Ty > _Tempbuf)
Definition: algorithm:2139
_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
_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
822  { // copy omitting each element satisfying _Pred
823  for (; _First != _Last; ++_First)
824  if (!_Pred(*_First))
825  *_Dest++ = *_First;
826  return (_Dest);
827  }
828 
829 template<class _InIt,
830  class _OutIt,
831  class _Pr> inline
832  _OutIt remove_copy_if(_InIt _First, _InIt _Last,
833  _OutIt _Dest, _Pr _Pred)
834  { // copy omitting each element satisfying _Pred
835  _STLCLRDB_RANGE(_First, _Last);
836  _STLCLRDB_POINTER(_Dest);
837  _STLCLRDB_POINTER(_Pred);
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
unsigned _Dest
Definition: mbstring.h:107
#define _STLCLRDB_POINTER(first)
Definition: memory:221
_OutIt remove_copy_if_unchecked(_InIt _First, _InIt _Last, _OutIt _Dest, _Pr _Pred)
Definition: algorithm:820
_OutIt remove_copy_if(_InIt _First, _InIt _Last, _OutIt _Dest, _Pr _Pred)
Definition: algorithm:1355
#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
873  { // remove each satisfying _Pred
874  _First = cliext::find_if_unchecked(_First, _Last, _Pred);
875  if (_First == _Last)
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_InIt find_if_unchecked(_InIt _First, _InIt _Last, _Pr _Pred)
Definition: algorithm:85
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _Pr >
_InIt _Find_if_not_unchecked ( _InIt  _First,
_InIt  _Last,
_Pr &  _Pred 
)
inline
421  { // find first _Count * _Val satisfying _Pred
422  _STLCLRDB_RANGE(_First1, _Last1);
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
template<class _InIt , class _Pr >
_InIt _Find_if_unchecked ( _InIt  _First,
_InIt  _Last,
_Pr &  _Pred 
)
inline
171  { // count elements satisfying _Pred
template<class _InIt , class _Fn1 >
void _For_each_unchecked ( _InIt  _First,
_InIt  _Last,
_Fn1 &  _Func 
)
inline
147  { // count elements that match _Val
149 
Definition: xutility:620
_Diff _Count
Definition: algorithm:1941
template<class _OutIt , class _Diff , class _Fn0 >
_OutIt _Generate_n_unchecked ( _OutIt  _Dest,
_Diff  _Count,
_Fn0 &  _Func 
)
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;
1257  _Rm = _Rm << _RANDOM_BITS | _RANDOM_MAX)
1258  _Rn = _Rn << _RANDOM_BITS
_In_ size_t _In_ int _Index
Definition: time.h:102
int _Rand(void)
Definition: algorithm:1233
template<class _FwdIt , class _Fn0 >
void _Generate_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_Fn0 &  _Func 
)
inline
1243  { // shuffle [_First, _Last)
template<class _RanIt , class _Pr >
void _Guess_median_unchecked ( _RanIt  _First,
_RanIt  _Mid,
_RanIt  _Last,
_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  }
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
void _XSort(_RanIt _First, _RanIt _Last, _Diff _Ideal)
Definition: algorithm:2630
_FwdIt _Last
Definition: algorithm:1936
_Distance_unknown _Idl_dist_add ( _Distance_unknown  ,
_Distance_unknown   
)
inline
2510  { // merge [_First, _Mid) with [_Mid, _Last), using _Pred
template<class _Diff1 >
_Distance_unknown _Idl_dist_add ( _Diff1  ,
_Distance_unknown   
)
inline
2510  { // merge [_First, _Mid) with [_Mid, _Last), using _Pred
2511  _STLCLRDB_ORDER_PRED(_First, _Mid, _Pred);
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_ORDER_PRED(first, last, pred)
Definition: memory:224
_FwdIt _Last
Definition: algorithm:1936
template<class _Diff2 >
_Distance_unknown _Idl_dist_add ( _Distance_unknown  ,
_Diff2   
)
inline
2520  { // insertion sort [_First, _Last), using operator<
template<class _Diff1 , class _Diff2 >
auto _Idl_dist_add ( _Diff1  _Lhs,
_Diff2  _Rhs 
)
inline
2525  { // order next element
template<class _InIt1 , class _InIt2 , class _Pr >
bool _Includes_unchecked ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_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);
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#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:3039
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
_Diff _Count
Definition: algorithm:1941
Definition: adapter:7
_FwdIt _Last
Definition: algorithm:1936
template<class _BidIt , class _Pr >
void _Inplace_merge_unchecked ( _BidIt  _First,
_BidIt  _Mid,
_BidIt  _Last,
_Pr &  _Pred 
)
inline
2734  { // partition [_First, _Last), using _Pred
2735  _RanIt _Mid = _First + (_Last - _First) / 2;
2736  cliext::_XMedian(_First, _Mid, _Last - 1, _Pred);
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
void _XMedian(_RanIt _First, _RanIt _Mid, _RanIt _Last)
Definition: algorithm:2557
_FwdIt _Last
Definition: algorithm:1936
template<class _BidIt , class _Pr >
void _Insertion_sort_unchecked ( _BidIt  _First,
_BidIt  _Last,
_Pr &  _Pred 
)
inline
2772  { // no room at bottom, rotate pivot upward
2773  if (_Plast != _Gfirst)
2775  ++_Plast;
2777  }
2778  else if (_Gfirst == _Last)
2779  { // no room at top, rotate pivot downward
2780  if (--_Glast != --_Pfirst)
_RanIt _Plast
Definition: algorithm:2577
_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 _RanIt , class _Pr >
_RanIt _Is_heap_until_unchecked ( _RanIt  _First,
_RanIt  _Last,
_Pr &  _Pred 
)
inline
3921  { // reverse permute and test for pure descending, using _Pred
3922  _BidIt _Next = _Last;
3923  if (_First == _Last || _First == --_Next)
3924  return (false);
3925 
3926  for (; ; )
3927  { // find rightmost element not smaller than successor
3928  _BidIt _Next1 = _Next;
3929  if (_STLCLRDB_LT_PRED(_Pred, *_Next1, *--_Next))
3930  { // swap with rightmost element that's not smaller, flip suffix
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT_PRED(pred, left, right)
Definition: memory:219
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _Pr >
bool _Is_partitioned_unchecked ( _InIt  _First,
_InIt  _Last,
_Pr &  _Pred 
)
inline
593  { // swap [_First1, _Last1) with [_First2, ...)
594  _STLCLRDB_RANGE(_First1, _Last1);
596  _Unchecked(_First1), _Unchecked(_Last1),
_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
template<class _FwdIt , class _Pr >
_FwdIt _Is_sorted_until_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_Pr &  _Pred 
)
inline
template<class _FwdIt , class _Ty , class _Pr >
_FwdIt _Lower_bound_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val,
_Pr &  _Pred 
)
inline
2305  { // right larger, cut it in half and partition left to match
2306  _Count1n = 0, _Count2n = _Count2 / 2;
2307  _Lastn = _Mid;
2308  cliext::advance(_Lastn, _Count2n);
2309  _Firstn = cliext::upper_bound_unchecked(_First, _Mid, *_Lastn);
2310  _Iter_distance(_First, _Firstn, _Count1n);
2311  }
2312 
2313  _BidIt _Midn = cliext::_XBuffered_rotate(_Firstn, _Mid, _Lastn,
2314  _Count1 - _Count1n, _Count2n, _Tempbuf); // rearrange middle
2315  cliext::_XBuffered_merge(_First, _Firstn, _Midn,
2316  _Count1n, _Count2n, _Tempbuf); // merge each new part
2317  cliext::_XBuffered_merge(_Midn, _Lastn, _Last,
2318  _Count1 - _Count1n, _Count2 - _Count2n, _Tempbuf);
2319  }
void _XBuffered_merge(_BidIt _First, _BidIt _Mid, _BidIt _Last, _Diff _Count1, _Diff _Count2, _Temp_iterator< _Ty > _Tempbuf)
Definition: algorithm:2214
_BidIt _XBuffered_rotate(_BidIt _First, _BidIt _Mid, _BidIt _Last, _Diff _Count1, _Diff _Count2, _Temp_iterator< _Ty > _Tempbuf)
Definition: algorithm:2139
_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 _RanIt , class _Pr >
void _Make_heap_unchecked ( _RanIt  _First,
_RanIt  _Last,
_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);
2246  _Iter_distance(_Mid, _Lastn, _Count2n);
2247  }
2248  else
2249  { // right larger, cut it in half and partition left to match
2250  _Count1n = 0, _Count2n = _Count2 / 2;
2251  _Lastn = _Mid;
2252  cliext::advance(_Lastn, _Count2n);
_FwdIt lower_bound_unchecked(_FwdIt _First, _FwdIt _Last, _Ty%_Val)
Definition: algorithm:1797
_Iter_distance(_First, _Last, _Count)
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt , class _Pr >
_CONSTEXPR14 _FwdIt _Max_element_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_Pr &  _Pred 
)
3610  { // take set [_First2, _Last2) from [_First1, _Last1), using operator<
3611  _STLCLRDB_ORDER(_First1, _Last1);
3612  _STLCLRDB_ORDER(_First2, _Last2);
#define _STLCLRDB_ORDER(first, last)
Definition: memory:223
unsigned _Dest
Definition: mbstring.h:107
#define _STLCLRDB_POINTER(first)
Definition: memory:221
template<class _RanIt , class _Pr >
void _Med3_unchecked ( _RanIt  _First,
_RanIt  _Mid,
_RanIt  _Last,
_Pr &  _Pred 
)
inline
2793  { // order [_First, _Last), using _Pred
2794  _Diff _Count;
_Diff _Count
Definition: algorithm:1941
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
2535  { // look for insertion point after first
2536  for (_BidIt _First1 = _Next1;
2537  _STLCLRDB_LT(_Val, *--_First1);
2538  _Next1 = _First1)
2539  *_Next1 = *_First1; // move hole down
2540  *_Next1 = _Val; // insert element in hole
2541  }
2542  }
2543  }
2544 
2545 template<class _RanIt> inline
2546  void _XMed3(_RanIt _First, _RanIt _Mid, _RanIt _Last)
#define _STLCLRDB_LT(left, right)
Definition: memory:218
void _XMed3(_RanIt _First, _RanIt _Mid, _RanIt _Last, _Pr _Pred)
Definition: algorithm:2704
_FwdIt const _Ty _Val
Definition: algorithm:1938
_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
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,
#define _TEMP_ITER(iter_t, value_t)
Definition: memory:244
Definition: xutility:620
_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 _FwdIt , class _Pr >
_CONSTEXPR14 _FwdIt _Min_element_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_Pr &  _Pred 
)
3643  { // take set [_First2, _Last2) from [_First1, _Last1), using _Pred
template<class _FwdIt , class _Pr >
_CONSTEXPR14 pair<_FwdIt, _FwdIt> _Minmax_element_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_Pr &  _Pred 
)
3675  { // XOR sets [_First1, _Last1) and [_First2, _Last2), using operator<
3676  _STLCLRDB_ORDER(_First1, _Last1);
3677  _STLCLRDB_ORDER(_First2, _Last2);
3680  _Unchecked(_First1), _Unchecked(_Last1),
3681  _Unchecked(_First2), _Unchecked(_Last2), _Unchecked(_Dest)));
3682  }
3683 
3684  // TEMPLATE FUNCTION set_symmetric_difference WITH PRED
3685 template<class _InIt1,
3686  class _InIt2,
3687  class _OutIt,
3688  class _Pr> inline
3689  _OutIt set_symmetric_difference_unchecked(_InIt1 _First1, _InIt1 _Last1,
3690  _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
3691  { // XOR sets [_First1, _Last1) and [_First2, _Last2), using _Pred
3692  for (; _First1 != _Last1 && _First2 != _Last2; )
3693  if (_STLCLRDB_LT_PRED(_Pred, *_First1, *_First2))
3694  *_Dest++ = *_First1, ++_First1;
3695  else if (_Pred(*_First2, *_First1))
3696  *_Dest++ = *_First2, ++_First2;
3697  else
3698  ++_First1, ++_First2;
3699  _Dest = cliext::copy_unchecked(_First1, _Last1, _Dest);
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT_PRED(pred, left, right)
Definition: memory:219
#define _STLCLRDB_ORDER(first, last)
Definition: memory:223
unsigned _Dest
Definition: mbstring.h:107
#define _STLCLRDB_POINTER(first)
Definition: memory:221
_OutIt set_symmetric_difference_unchecked(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
Definition: algorithm:3689
_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
_OutIt copy_unchecked(_InIt _First, _InIt _Last, _OutIt _Dest)
Definition: memory:490
template<class _InIt1 , class _InIt2 , class _Pr >
pair<_InIt1, _InIt2> _Mismatch_no_deprecate ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_Pr &  _Pred 
)
inline
260  { // find first [_First2, _Last2) satisfying _Pred
261  _STLCLRDB_RANGE(_First1, _Last1);
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
template<class _InIt1 , class _InIt2 , class _Pr >
pair<_InIt1, _InIt2> _Mismatch_unchecked ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_Pr &  _Pred 
)
inline
244  { // room for match, try it
245  _FwdIt1 _Mid1 = _First1;
246  for (_FwdIt2 _Mid2 = _First2; ; ++_Mid1, ++_Mid2)
template<class _InIt1 , class _InIt2 , class _Pr >
pair<_InIt1, _InIt2> _Mismatch_unchecked ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_Pr &  _Pred 
)
inline
327  { // no match, take big jump and back up as needed
328  _Oldfirst1 = _First1 + 1;
329  _First1 += _Count;
_Diff _Count
Definition: algorithm:1941
template<class _BidIt , class _Pr >
bool _Next_permutation_unchecked ( _BidIt  _First,
_BidIt  _Last,
_Pr &  _Pred 
)
inline
3835  { // permute and test for pure ascending, using operator<
3836  _STLCLRDB_RANGE(_First, _Last);
3838  _Unchecked(_First), _Unchecked(_Last)));
3839  }
3840 
3841  // TEMPLATE FUNCTION next_permutation WITH PRED
3842 template<class _BidIt,
3843  class _Pr> inline
3844  bool next_permutation_unchecked(_BidIt _First, _BidIt _Last, _Pr _Pred)
3845  { // permute and test for pure ascending, using _Pred
3846  _BidIt _Next = _Last;
3847  if (_First == _Last || _First == --_Next)
3848  return (false);
3849 
3850  for (; ; )
3851  { // find rightmost element smaller than successor
3852  _BidIt _Next1 = _Next;
3853  if (_STLCLRDB_LT_PRED(_Pred, *--_Next, *_Next1))
3854  { // swap with rightmost element that's smaller, flip suffix
3855  _BidIt _Mid = _Last;
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT_PRED(pred, left, right)
Definition: memory:219
bool next_permutation_unchecked(_BidIt _First, _BidIt _Last)
Definition: algorithm:3806
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
bool next_permutation_unchecked(_BidIt _First, _BidIt _Last, _Pr _Pred)
Definition: algorithm:3844
_FwdIt _Last
Definition: algorithm:1936
const _Ty& _Right _NOEXCEPT_OP ( _NOEXCEPT_OP(_DEBUG_LT(_Left, _Right))  )
3742  { // find largest element, using _Pred
3743  _FwdIt _Found = _First;
3744  if (_First != _Last)
_FwdIt _Last
Definition: algorithm:1936
const _Ty& _Right _NOEXCEPT_OP ( _NOEXCEPT_OP(_DEBUG_LT(_Right, _Left))  )
3785  { // find smallest element, using _Pred
template<class _InIt , class _Pr >
bool _None_of_unchecked ( _InIt  _First,
_InIt  _Last,
_Pr &  _Pred 
)
inline
407  { // no match, take big jump and back up as needed
template<class _RanIt , class _Pr >
void _Nth_element_unchecked ( _RanIt  _First,
_RanIt  _Nth,
_RanIt  _Last,
_Pr &  _Pred 
)
inline
3143  { // sort preserving order of equivalents, using _Pred
3144  if (_Count <= _ISort::_Max)
3145  cliext::_XInsertion_sort(_First, _Last, _Pred); // small
3146  else
3147  { // sort halves and merge
3148  _Diff _Count2 = (_Count + 1) / 2;
3149  _BidIt _Mid = _First;
3150  cliext::advance(_Mid, _Count2);
3151 
3152  if (_Count2 <= _Tempbuf._Maxlen())
3153  { // temp buffer big enough, sort each half using buffer
3154  cliext::_XBuffered_merge_sort(_First, _Mid, _Count2,
3155  _Tempbuf, _Pred);
3156  cliext::_XBuffered_merge_sort(_Mid, _Last, _Count - _Count2,
3157  _Tempbuf, _Pred);
3158  }
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
void _XBuffered_merge_sort(_BidIt _First, _BidIt _Last, _Diff _Count, _Temp_iterator< _Ty > _Tempbuf)
Definition: algorithm:2872
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
_Diff _Count
Definition: algorithm:1941
void _XInsertion_sort(_BidIt _First, _BidIt _Last)
Definition: algorithm:2519
_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
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
3108  if (_Count <= _ISort::_Max)
3109  cliext::_XInsertion_sort(_First, _Last, _Pred); // small
3110  else
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
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
_Diff _Count
Definition: algorithm:1941
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
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
void _XChunked_merge(_BidIt _First, _BidIt _Last, _OutIt _Dest, _Diff _Chunk, _Diff _Count)
Definition: algorithm:2842
_Diff _Count
Definition: algorithm:1941
_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
2825  { // order [_First, _Last), using _Pred
2826  cliext::_XSort(_First, _Last, _Last - _First, _Pred);
2827  }
2828 
2829 template<class _RanIt,
2830  class _Pr> inline
2831  void sort(_RanIt _First, _RanIt _Last, _Pr _Pred)
2832  { // order [_First, _Last), using _Pred
2833  _STLCLRDB_RANGE(_First, _Last);
2834  _STLCLRDB_POINTER(_Pred);
2835  cliext::sort_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred);
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;
2850  cliext::advance(_Mid2, _Chunk);
2851 
2852  _Dest = cliext::merge_unchecked(_First, _Mid1,
2853  _Mid1, _Mid2, _Dest);
2854  _First = _Mid2;
2855  }
2856 
2857  if (_Count <= _Chunk)
2858  cliext::copy_unchecked(_First, _Last,
2859  _Dest); // copy partial last chunk
2860  else
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,
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_OutIt merge_unchecked(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
Definition: algorithm:2073
unsigned _Dest
Definition: mbstring.h:107
#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
_Diff _Count
Definition: algorithm:1941
void _XSort(_RanIt _First, _RanIt _Last, _Diff _Ideal)
Definition: algorithm:2630
_OutIt copy_unchecked(_InIt _First, _InIt _Last, _OutIt _Dest)
Definition: memory:490
void sort_unchecked(_RanIt _First, _RanIt _Last)
Definition: algorithm:2661
_FwdIt _Last
Definition: algorithm:1936
void sort(_RanIt _First, _RanIt _Last, _Pr _Pred)
Definition: algorithm:2913
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
522  { // look for one of [_First2, _Last2) that matches element
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
495  { // potential answer, save it
496  _Ans = _First1;
497  break;
498  }
499  }
500  return (_Ans);
501  }
502 
503 template<class _FwdIt1,
504  class _FwdIt2,
505  class _Pr> inline
template<class _FwdIt , class _Pr >
_FwdIt _Partition_point_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_Pr &  _Pred 
)
inline
616  { // transform [_First, _Last) with _Func
617  _STLCLRDB_RANGE(_First, _Last);
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
unsigned _Dest
Definition: mbstring.h:107
#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 _FwdIt , class _Pr >
_FwdIt _Partition_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_Pr &  _Pred,
forward_iterator_tag   
)
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 
1864  // TEMPLATE FUNCTION upper_bound
1865 template<class _FwdIt,
_FwdIt lower_bound_unchecked(_FwdIt _First, _FwdIt _Last, _Ty%_Val)
Definition: algorithm:1797
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_ORDER_PRED(first, last, pred)
Definition: memory:224
_FwdIt const _Ty _Val
Definition: algorithm:1938
_FwdIt _Last
Definition: algorithm:1936
template<class _BidIt , class _Pr >
_BidIt _Partition_unchecked ( _BidIt  _First,
_BidIt  _Last,
_Pr &  _Pred,
bidirectional_iterator_tag   
)
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,
#define _STLCLRDB_LT(left, right)
Definition: memory:218
Definition: xutility:620
_Iter_distance(_First, _Last, _Count)
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
_Diff _Count
Definition: algorithm:1941
_FwdIt const _Ty _Val
Definition: algorithm:1938
_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
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);
2189  return (_First);
2190  }
2191  }
2192 #endif // __cplusplus_cli
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 _Ty , class _Pr >
void _Pop_heap_hole_unchecked ( _RanIt  _First,
_RanIt  _Last,
_RanIt  _Dest,
_Ty &&  _Val,
_Pr &  _Pred 
)
inline
2199  { // merge backwards to _Dest, using operator<
2200  for (; ; )
2201  if (_First1 == _Last1)
2202  return (cliext::copy_backward_unchecked(_First2, _Last2, _Dest));
2203  else if (_First2 == _Last2)
2204  return (cliext::copy_backward_unchecked(_First1, _Last1, _Dest));
2205  else if (_STLCLRDB_LT(*--_Last2, *--_Last1))
#define _STLCLRDB_LT(left, right)
Definition: memory:218
unsigned _Dest
Definition: mbstring.h:107
_BidIt2 copy_backward_unchecked(_BidIt1 _First, _BidIt1 _Last, _BidIt2 _Dest)
Definition: memory:514
template<class _RanIt , class _Pr >
void _Pop_heap_unchecked ( _RanIt  _First,
_RanIt  _Last,
_Pr &  _Pred 
)
inline
2217  { // merge [_First, _Mid) with [_Mid, _Last), using operator<
2218  if (_Count1 + _Count2 == 2)
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
3884  { // reverse permute and test for pure descending, using operator<
3885  _BidIt _Next = _Last;
3886  if (_First == _Last || _First == --_Next)
3887  return (false);
3888  for (; ; )
3889  { // find rightmost element not smaller than successor
3890  _BidIt _Next1 = _Next;
3891  if (_STLCLRDB_LT(*_Next1, *--_Next))
3892  { // swap with rightmost element that's not smaller, flip suffix
3893  _BidIt _Mid = _Last;
3894  for (; !_STLCLRDB_LT(*--_Mid, *_Next); )
3895  ;
3896  cliext::iter_swap(_Next, _Mid);
3897  cliext::reverse(_Next1, _Last);
3898  return (true);
3899  }
3900 
void reverse(_BidIt _First, _BidIt _Last)
Definition: algorithm:1105
#define _STLCLRDB_LT(left, right)
Definition: memory:218
void iter_swap(_FwdIt1 _Left, _FwdIt2 _Right)
Definition: algorithm:573
_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
2125  { // copy merging ranges, both using _Pred
2126  _STLCLRDB_ORDER_PRED(_First1, _Last1, _Pred);
2127  _STLCLRDB_ORDER_PRED(_First2, _Last2, _Pred);
2129  return (cliext::merge_unchecked(
2130  _Unchecked(_First1), _Unchecked(_Last1),
2131  _Unchecked(_First2), _Unchecked(_Last2),
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_OutIt merge_unchecked(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
Definition: algorithm:2073
unsigned _Dest
Definition: mbstring.h:107
#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
template<class _RanIt , class _Pr >
void _Push_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 _RngFn >
void _Random_shuffle1 ( _RanIt  _First,
_RanIt  _Last,
_RngFn &  _RngFunc 
)
inline
1799  { // find first element not before _Val, using operator<
template<class _RanIt , class _RngFn >
void _Random_shuffle_unchecked ( _RanIt  _First,
_RanIt  _Last,
_RngFn &  _RngFunc 
)
inline
1778  { // order heap by repeatedly popping, using _Pred
1779  for (; 1 < _Last - _First; --_Last)
1781  }
1782 
1783 template<class _RanIt,
1784  class _Pr> inline
1785  void sort_heap(_RanIt _First, _RanIt _Last, _Pr _Pred)
1786  { // order heap by repeatedly popping, using _Pred
1787  _STLCLRDB_RANGE(_First, _Last);
1788  _STLCLRDB_POINTER(_Pred);
1789  _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
void pop_heap_unchecked(_RanIt _First, _RanIt _Last)
Definition: algorithm:1622
void sort_heap(_RanIt _First, _RanIt _Last, _Pr _Pred)
Definition: algorithm:2280
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _Iter1 , class _Iter2 , class _UIter1 , class _UIter2 >
_CONSTEXPR14 pair<_Iter1, _Iter2> _Rechecked_both ( _Iter1  _Dest1,
_Iter2  _Dest2,
pair< _UIter1, _UIter2 >  _Src 
)
106  { // find first matching successor
107  for (_FwdIt _Firstb; (_Firstb = _First) != _Last && ++_First != _Last; )
108  if (*_Firstb == *_First)
_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
1343  { // temp buffer big enough, copy right partition out and back
1344  _BidIt _Next = _First;
1345  for (_Tempbuf._Init(); _First != _Last; ++_First)
1346  if (_Pred(*_First))
1347  *_Next++ = *_First;
1348  else
1349  *_Tempbuf++ = *_First;
1350 
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _OutIt , class _Pr >
_OutIt _Remove_copy_if_unchecked ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Pr &  _Pred 
)
inline
1339  { // partition preserving order of equivalents, using _Pred
template<class _InIt , class _OutIt , class _Ty >
_OutIt _Remove_copy_unchecked ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
const _Ty &  _Val 
)
inline
1294  { // shuffle [_First, _Last) using random function _Func
1295  _STLCLRDB_RANGE(_First, _Last);
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt , class _Pr >
_FwdIt _Remove_if_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_Pr &  _Pred 
)
inline
1425  { // partition preserving order of equivalents, using _Pred
template<class _FwdIt , class _Ty >
_FwdIt _Remove_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val 
)
inline
1382  { // partition preserving order of equivalents, using _Pred
1383  if (_Count == 0)
1384  return (_First);
1385  else if (_Count == 1)
1386  return (_Pred(*_First) ? _Last : _First);
1387  else if (_Count <= _Tempbuf._Maxlen())
1388  { // temp buffer big enough, copy right partition out and back
1389  _BidIt _Next = _First;
1390  for (_Tempbuf._Init(); _First != _Last; ++_First)
1391  if (_Pred(*_First))
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_Diff _Count
Definition: algorithm:1941
_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
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_unchecked ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Pr &  _Pred,
const _Ty &  _Val 
)
inline
1176  { // rotate each subcycle
1177  _RanIt _Hole = _First + _Count;
1178  _RanIt _Next = _Hole;
1179  _Ty _Holeval = *_Hole;
1180  _RanIt _Next1 = _Next + _Shift == _Last ? _First : _Next + _Shift;
1181  while (_Next1 != _Hole)
1182  { // percolate elements back around subcycle
1183  *_Next = *_Next1;
1184  _Next = _Next1;
1185  _Next1 = _Shift < _Last - _Next1 ? _Next1 + _Shift
1186  : _First + (_Shift - (_Last - _Next1));
1187  }
1188  *_Next = _Holeval;
1189  }
_Diff _Count
Definition: algorithm:1941
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _OutIt , class _Ty >
_OutIt _Replace_copy_unchecked ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
const _Ty &  _Oldval,
const _Ty &  _Newval 
)
inline
1124  { // copy reversing elements in [_First, _Last)
1125  _STLCLRDB_RANGE(_First, _Last);
1128  _Unchecked(_First), _Unchecked(_Last), _Unchecked(_Dest)));
1129  }
1130 
1131  // TEMPLATE FUNCTION rotate
1132 template<class _FwdIt> inline
1133  void _Rotate(_FwdIt _First, _FwdIt _Mid, _FwdIt _Last,
1135  { // rotate [_First, _Last), forward iterators
1136  for (_FwdIt _Next = _Mid; ; )
1137  { // swap [_First, ...) into place
unsigned _Dest
Definition: mbstring.h:107
#define _STLCLRDB_POINTER(first)
Definition: memory:221
_OutIt reverse_copy_unchecked(_BidIt _First, _BidIt _Last, _OutIt _Dest)
Definition: algorithm:1114
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
void _Rotate(_RanIt _First, _RanIt _Mid, _RanIt _Last, random_access_iterator_tag)
Definition: algorithm:1159
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
Definition: xutility:521
_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
1100  { // reverse elements in [_First, _Last)
1101  _Reverse(_First, _Last, _Iter_category(_First));
1102  }
1103 
1104 template<class _BidIt> inline
1105  void reverse(_BidIt _First, _BidIt _Last)
iterator_traits< _Iter_t >::iterator_category _Iter_category(_Iter_t)
Definition: xutility:654
void reverse(_BidIt _First, _BidIt _Last)
Definition: xutility:3435
void _Reverse(_RanIt _First, _RanIt _Last, random_access_iterator_tag)
Definition: algorithm:1091
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt , class _Ty >
void _Replace_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Oldval,
const _Ty &  _Newval 
)
inline
1085  { // reverse elements in [_First, _Last), bidirectional iterators
template<class _BidIt , class _OutIt >
_OutIt _Reverse_copy_unchecked ( _BidIt  _First,
_BidIt  _Last,
_OutIt  _Dest 
)
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)
1596  { // move _Hole down to larger child
template<class _FwdIt , class _OutIt >
_OutIt _Rotate_copy_unchecked ( _FwdIt  _First,
_FwdIt  _Mid,
_FwdIt  _Last,
_OutIt  _Dest 
)
inline
1631  { // pop *_First to *(_Last - 1) and reheap, using operator<
1632  _STLCLRDB_RANGE(_First, _Last);
1633  _STLCLRDB_HEAP(_First, _Last);
#define _STLCLRDB_HEAP(first, last)
Definition: algorithm:1489
#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
716  { // copy replacing each matching _Oldval with _Newval
717  _STLCLRDB_RANGE(_First, _Last);
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)
733  *_Dest = _Pred(*_First) ? _Val : *_First;
734  return (_Dest);
735  }
736 
737 template<class _InIt,
738  class _OutIt,
_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
unsigned _Dest
Definition: mbstring.h:107
#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 const _Ty _Val
Definition: algorithm:1938
_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
756  { // replace [_First, _Last) with _Func()
757  for (; _First != _Last; ++_First)
758  *_First = _Func();
759  }
760 
761 template<class _FwdIt,
762  class _Fn0> inline
763  void generate(_FwdIt _First, _FwdIt _Last, _Fn0 _Func)
764  { // replace [_First, _Last) with _Func()
765  _STLCLRDB_RANGE(_First, _Last);
766  _STLCLRDB_POINTER(_Func);
767  cliext::generate_unchecked(_Unchecked(_First), _Unchecked(_Last), _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()
unsigned _Dest
Definition: mbstring.h:107
void generate_unchecked(_FwdIt _First, _FwdIt _Last, _Fn0 _Func)
Definition: algorithm:755
_OutIt generate_n(_OutIt _Dest, _Diff _Count, _Fn0 _Func)
Definition: algorithm:1263
#define _STLCLRDB_POINTER(first)
Definition: memory:221
void generate_n_unchecked(_OutIt _Dest, _Diff _Count, _Fn0 _Func)
Definition: algorithm:774
void generate(_FwdIt _First, _FwdIt _Last, _Fn0 _Func)
Definition: algorithm:1243
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_Diff _Count
Definition: algorithm:1941
_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
644  { // transform [_First1, _Last1) and [_First2, _Last2) with _Func
645  _STLCLRDB_RANGE(_First1, _Last1);
646  _STLCLRDB_POINTER(_First2);
648  _STLCLRDB_POINTER(_Func);
650  _Unchecked(_First1), _Unchecked(_Last1),
651  _Unchecked(_First2), _Dest, _Func));
652  }
653 
654  // TEMPLATE FUNCTION replace
655 template<class _FwdIt,
656  class _Ty> inline
657  void replace_unchecked(_FwdIt _First, _FwdIt _Last,
658  const _Ty% _Oldval, const _Ty% _Newval)
659  { // replace each matching _Oldval with _Newval
unsigned _Dest
Definition: mbstring.h:107
#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
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 _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
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)
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
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 const _Ty _Val
Definition: algorithm:1938
_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
3434  { // test if set [_First1, _Last1) in [_First2, _Last2), using _Pred
3435  for (; _First1 != _Last1 && _First2 != _Last2; )
3436  if (_STLCLRDB_LT_PRED(_Pred, *_First2, *_First1))
3437  return (false);
3438  else if (_Pred(*_First1, *_First2))
3439  ++_First1;
3440  else
3441  ++_First1, ++_First2;
3442  return (_First2 == _Last2);
3443  }
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT_PRED(pred, left, right)
Definition: memory:219
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
3420  { // test if all [_First1, _Last1) in [_First2, _Last2), using operator<
3421  _STLCLRDB_ORDER(_First1, _Last1);
3422  _STLCLRDB_ORDER(_First2, _Last2);
3424  _Unchecked(_First1), _Unchecked(_Last1),
3425  _Unchecked(_First2), _Unchecked(_Last2)));
3426  }
3427 
#define _STLCLRDB_ORDER(first, last)
Definition: memory:223
bool includes_unchecked(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2)
Definition: algorithm:3403
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
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
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)
3348  _First = _Mid.second;
3349  else if (_Mid.first <= _Nth)
3350  return; // Nth inside fat pivot, done
#define _PAIR_TYPE(iter_t)
Definition: memory:31
if(_Source==NULL||_DestinationSize< _SourceSize)
Definition: corecrt_memcpy_s.h:48
else
Definition: variant:945
return(cliext::equal_range_unchecked(_Unchecked(_First), _Unchecked(_Last), _Val, _Pred))
Definition: adapter:7
_FwdIt _Last
Definition: algorithm:1936
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
3329  { // copy [First1, _Last1) into [_First2, _Last2) using _Pred
3330  _STLCLRDB_RANGE(_First1, _Last1);
3331  _STLCLRDB_RANGE(_First2, _Last2);
3334  _Unchecked(_First1), _Unchecked(_Last1),
3335  _Unchecked(_First2), _Unchecked(_Last2), _Pred));
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_RanIt partial_sort_copy_unchecked(_InIt _First1, _InIt _Last1, _RanIt _First2, _RanIt _Last2)
Definition: algorithm:3254
#define _STLCLRDB_POINTER(first)
Definition: memory:221
_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_symmetric_difference_no_deprecate ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest,
_Pr &  _Pred 
)
inline
3546  { // AND sets [_First1, _Last1) and [_First2, _Last2), using operator<
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
3515  { // OR sets [_First1, _Last1) and [_First2, _Last2), using _Pred
3516  _STLCLRDB_ORDER_PRED(_First1, _Last1, _Pred);
3517  _STLCLRDB_ORDER_PRED(_First2, _Last2, _Pred);
3520  _Unchecked(_First1), _Unchecked(_Last1),
3521  _Unchecked(_First2), _Unchecked(_Last2), _Unchecked(_Dest), _Pred));
3522  }
3523 
3524  // TEMPLATE FUNCTION set_intersection
3525 template<class _InIt1,
3526  class _InIt2,
3527  class _OutIt> inline
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_OutIt set_union_unchecked(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
Definition: algorithm:3462
unsigned _Dest
Definition: mbstring.h:107
#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
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
3256  { // copy [First1, _Last1) into [_First2, _Last2), using operator<
3259 
3260  if (_First1 == _Last1 || _First2 == _Last2)
3261  return (_First2);
3262  else
Definition: xutility:620
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
3228  { // order [First, _Last) up to _Mid, using _Pred
3230 
3231  cliext::make_heap_unchecked(_First, _Mid, _Pred);
3232 
3233  for (_RanIt _Next = _Mid; _Next < _Last; ++_Next)
3234  if (_STLCLRDB_LT_PRED(_Pred, *_Next, *_First))
3235  _XPop_heap(_First, _Mid, _Next,
3236  _Ty(*_Next), _Pred); // replace top with new largest
3237  cliext::sort_heap_unchecked(_First, _Mid, _Pred);
3238  }
3239 
3240 template<class _RanIt,
3241  class _Pr> inline
3242  void partial_sort(_RanIt _First, _RanIt _Mid, _RanIt _Last, _Pr _Pred)
3243  { // order [First, _Last) up to _Mid, using _Pred
3244  _STLCLRDB_RANGE(_First, _Mid);
3245  _STLCLRDB_RANGE(_Mid, _Last);
3246  _STLCLRDB_POINTER(_Pred);
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT_PRED(pred, left, right)
Definition: memory:219
#define _STLCLRDB_POINTER(first)
Definition: memory:221
void partial_sort_unchecked(_RanIt _First, _RanIt _Mid, _RanIt _Last)
Definition: algorithm:3201
void make_heap_unchecked(_RanIt _First, _RanIt _Last)
Definition: algorithm:1702
Definition: xutility:620
void partial_sort(_RanIt _First, _RanIt _Mid, _RanIt _Last, _Pr _Pred)
Definition: algorithm:3072
void sort_heap_unchecked(_RanIt _First, _RanIt _Last)
Definition: algorithm:1760
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
void _XPop_heap(_RanIt _First, _RanIt _Last, _RanIt _Dest, _Ty _Val, _Pr _Pred)
Definition: algorithm:1669
template<class _RanIt , class _Pr >
void _Sort_heap_unchecked ( _RanIt  _First,
_RanIt  _Last,
_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))
#define _STLCLRDB_LT(left, right)
Definition: memory:218
template<class _RanIt , class _Pr >
void _Sort_unchecked ( _RanIt  _First,
_RanIt  _Last,
_Pr &  _Pred 
)
inline
template<class _RanIt , class _Diff , class _Pr >
void _Sort_unchecked1 ( _RanIt  _First,
_RanIt  _Last,
_Diff  _Ideal,
_Pr &  _Pred 
)
inline
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);
2882  _Mid = _Midend;
2883  }
2884  cliext::_XInsertion_sort(_Mid, _Last); // sort partial last chunk
2885 
2886  for (_Diff _Chunk = _ISort::_Max; _Chunk < _Count; _Chunk *= 2)
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  }
2894 
2895 #if __cplusplus_cli
2896 template<class _BidIt,
2897  class _Diff,
2898  class _Ty> inline
2899  void _XBuffered_merge_sort(_BidIt _First, _BidIt _Last, _Diff _Count,
2900  _Temp_gc_iterator<_Ty> _Tempbuf)
2901  { // sort using temp buffer for merges, using operator<
2902  _BidIt _Mid = _First;
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
void _XChunked_merge(_BidIt _First, _BidIt _Last, _OutIt _Dest, _Diff _Chunk, _Diff _Count)
Definition: algorithm:2842
_Diff _Count
Definition: algorithm:1941
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 _BidIt , class _Pr >
_BidIt _Stable_partition_unchecked ( _BidIt  _First,
_BidIt  _Last,
_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
2061  bool binary_search(_FwdIt _First, _FwdIt _Last,
2062  const _Ty% _Val, _Pr _Pred)
2063  { // test if _Val equivalent to some element, using _Pred
2064  _STLCLRDB_ORDER_PRED(_First, _Last, _Pred);
2066  _Unchecked(_First), _Unchecked(_Last), _Val, _Pred));
2067  }
2068 
2069  // TEMPLATE FUNCTION merge
2070 template<class _InIt1,
2071  class _InIt2,
2072  class _OutIt> inline
2073  _OutIt merge_unchecked(_InIt1 _First1, _InIt1 _Last1,
2074  _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
_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
unsigned _Dest
Definition: mbstring.h:107
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_ORDER_PRED(first, last, pred)
Definition: memory:224
_OutIt merge_unchecked(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred)
Definition: algorithm:2106
bool binary_search_unchecked(_FwdIt _First, _FwdIt _Last, const _Ty%_Val)
Definition: algorithm:2030
bool binary_search(_FwdIt _First, _FwdIt _Last, const _Ty &_Val, _Pr _Pred)
Definition: algorithm:2457
bool binary_search_unchecked(_FwdIt _First, _FwdIt _Last, const _Ty%_Val, _Pr _Pred)
Definition: algorithm:2051
_FwdIt const _Ty _Val
Definition: algorithm:1938
_FwdIt _Last
Definition: algorithm:1936
template<class _BidIt , class _Pr , class _Diff , class _Ty >
pair<_BidIt, _Diff> _Stable_partition_unchecked1 ( _BidIt  _First,
_BidIt  _Last,
_Pr &  _Pred,
const _Diff  _Count,
_Temporary_buffer< _Ty > &  _Temp_buf 
)
inline
1945  { // divide and conquer, check midpoint
1946  _Diff _Count2 = _Count / 2;
1947  _FwdIt _Mid = _First;
1948  cliext::advance(_Mid, _Count2);
1949 
1950  if (_STLCLRDB_LT(*_Mid, _Val))
1951  { // range begins above _Mid, loop
1952  _First = ++_Mid;
1953  _Count -= _Count2 + 1;
1954  }
1955  else if (_Val < *_Mid)
1956  _Count = _Count2; // range in first half, loop
1957  else
1958  { // range straddles mid, find each end and return
1959  _FwdIt _First2 = lower_bound(_First, _Mid, _Val);
1960  cliext::advance(_First, _Count);
1961  _FwdIt _Last2 = upper_bound(++_Mid, _First, _Val);
1962  return (_PAIR_TYPE(_FwdIt)(_First2, _Last2));
1963  }
1964  }
1965 
1966  return (_PAIR_TYPE(_FwdIt)(_First, _First)); // empty range
1967  }
1968 
1969 template<class _FwdIt,
1970  class _Ty> inline
1971  _PAIR_TYPE(_FwdIt) equal_range(_FwdIt _First, _FwdIt _Last,
1972  const _Ty% _Val)
1973  { // find range equivalent to _Val, using operator<
1974  _STLCLRDB_ORDER(_First, _Last);
1975  return (cliext::equal_range_unchecked(
1976  _Unchecked(_First), _Unchecked(_Last), _Val));
1977  }
1978 
1979  // TEMPLATE FUNCTION equal_range WITH PRED
1980 template<class _FwdIt,
1981  class _Ty,
1982  class _Pr> inline
1983  _PAIR_TYPE(_FwdIt) equal_range_unchecked(_FwdIt _First, _FwdIt _Last,
1984  const _Ty% _Val, _Pr _Pred)
1985  { // find range equivalent to _Val, using _Pred
1987 
1988  _Diff _Count = 0;
1989  _Iter_distance(_First, _Last, _Count);
1990 
1991  for (; 0 < _Count; )
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;
2000  _Count -= _Count2 + 1;
2001  }
2002  else if (_Pred(_Val, *_Mid))
2003  _Count = _Count2; // range in first half, loop
2004  else
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 
2013  return (_PAIR_TYPE(_FwdIt)(_First, _First)); // empty range
2014  }
2015 
2016 template<class _FwdIt,
2017  class _Ty,
2018  class _Pr> inline
2019  _PAIR_TYPE(_FwdIt) equal_range(_FwdIt _First, _FwdIt _Last,
2020  const _Ty% _Val, _Pr _Pred)
2021  { // find range equivalent to _Val, using _Pred
2022  _STLCLRDB_ORDER_PRED(_First, _Last, _Pred);
2023  return (cliext::equal_range_unchecked(
2024  _Unchecked(_First), _Unchecked(_Last), _Val, _Pred));
2025  }
2026 
2027  // TEMPLATE FUNCTION binary_search
2028 template<class _FwdIt,
2029  class _Ty> inline
2030  bool binary_search_unchecked(_FwdIt _First, _FwdIt _Last,
2031  const _Ty% _Val)
2032  { // test if _Val equivalent to some element, using operator<
2033  _First = cliext::lower_bound_unchecked(_First, _Last, _Val);
2034  return (_First != _Last && !(_Val < *_First));
_FwdIt lower_bound_unchecked(_FwdIt _First, _FwdIt _Last, _Ty%_Val)
Definition: algorithm:1797
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT_PRED(pred, left, right)
Definition: memory:219
#define _STLCLRDB_ORDER(first, last)
Definition: memory:223
#define _STLCLRDB_LT(left, right)
Definition: memory:218
pair< _FwdIt, _FwdIt > equal_range(_FwdIt _First, _FwdIt _Last, const _Ty &_Val, _Pr _Pred)
Definition: algorithm:2425
#define _PAIR_TYPE(iter_t)
Definition: memory:31
_FwdIt lower_bound(_FwdIt _First, _FwdIt _Last, const _Ty &_Val, _Pr _Pred)
Definition: algorithm:2324
_FwdIt upper_bound(_FwdIt _First, _FwdIt _Last, const _Ty &_Val, _Pr _Pred)
Definition: algorithm:2370
Definition: xutility:620
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_ORDER_PRED(first, last, pred)
Definition: memory:224
_Iter_distance(_First, _Last, _Count)
bool binary_search_unchecked(_FwdIt _First, _FwdIt _Last, const _Ty%_Val, _Pr _Pred)
Definition: algorithm:2051
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
_Diff _Count
Definition: algorithm:1941
_FwdIt const _Ty _Val
Definition: algorithm:1938
_FwdIt _Last
Definition: algorithm:1936
template<class _BidIt , class _Pr >
void _Stable_sort_unchecked ( _BidIt  _First,
_BidIt  _Last,
_Pr &  _Pred 
)
inline
3019  { // copy merging chunks, using _Pred
3020  for (_Diff _Chunk2 = _Chunk * 2; _Chunk2 <= _Count; _Count -= _Chunk2)
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);
3029  _First = _Mid2;
3030  }
3031 
3032  if (_Count <= _Chunk)
3033  cliext::copy_unchecked(_First, _Last,
3034  _Dest); // copy partial last chunk
3035  else
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_OutIt merge_unchecked(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
Definition: algorithm:2073
unsigned _Dest
Definition: mbstring.h:107
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
_Diff _Count
Definition: algorithm:1941
_OutIt copy_unchecked(_InIt _First, _InIt _Last, _OutIt _Dest)
Definition: memory:490
_FwdIt _Last
Definition: algorithm:1936
template<class _BidIt , class _Diff , class _Ty , class _Pr >
void _Stable_sort_unchecked1 ( _BidIt  _First,
_BidIt  _Last,
_Diff  _Count,
_Temporary_buffer< _Ty > &  _Temp_buf,
_Pr &  _Pred 
)
inline
2991  { // sort preserving order of equivalents, using operator<
2994 
2995  if (_First != _Last)
2996  { // sort nontrivial sequence
2997  _Diff _Count = 0;
2998  _Iter_distance(_First, _Last, _Count);
2999  _TEMP_ITER(_BidIt, _Ty) _Tempbuf((_Count + 1) / 2);
3000 
3001  cliext::_XStable_sort(_First, _Last, _Count, _Tempbuf);
3002  }
3003  }
3004 
3005 template<class _BidIt> inline
3006  void stable_sort(_BidIt _First, _BidIt _Last)
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,
#define _TEMP_ITER(iter_t, value_t)
Definition: memory:244
void stable_sort(_BidIt _First, _BidIt _Last, _Pr _Pred)
Definition: algorithm:3039
void _XStable_sort(_BidIt _First, _BidIt _Last, _Diff _Count, _Temp_iterator< _Ty > _Tempbuf, _Pr _Pred)
Definition: algorithm:3105
Definition: xutility:620
_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
_Diff _Count
Definition: algorithm:1941
Definition: adapter:7
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt2 _Swap_ranges_unchecked ( _FwdIt1  _First1,
_FwdIt1  _Last1,
_FwdIt2  _Dest 
)
inline
912  { // remove each matching previous
template<class _InIt , class _OutIt , class _Fn1 >
_OutIt _Transform_no_deprecate ( _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_no_deprecate ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_OutIt  _Dest,
_Fn2 &  _Func 
)
inline
1013  { // copy compressing pairs satisfying _Pred, input iterators
1015 
1016  _Ty _Val = *_First;
Definition: xutility:620
_FwdIt const _Ty _Val
Definition: algorithm:1938
template<class _InIt , class _OutIt , class _Fn1 >
_OutIt _Transform_unchecked ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Fn1 &  _Func 
)
inline
949  { // copy compressing pairs that match, input iterators
template<class _InIt1 , class _InIt2 , class _OutIt , class _Fn2 >
_OutIt _Transform_unchecked ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_OutIt  _Dest,
_Fn2 &  _Func 
)
inline
993  : _Unique_copy(_First, _Last, _Dest, _Iter_category(_First)));
994  }
995 
996 template<class _InIt,
997  class _OutIt> inline
998  _OutIt unique_copy(_InIt _First, _InIt _Last, _OutIt _Dest)
999  { // copy compressing pairs that match
iterator_traits< _Iter_t >::iterator_category _Iter_category(_Iter_t)
Definition: xutility:654
unsigned _Dest
Definition: mbstring.h:107
_OutIt _Unique_copy(_RanIt _First, _RanIt _Last, _OutIt _Dest, _Pr _Pred, random_access_iterator_tag)
Definition: algorithm:1051
_OutIt unique_copy(_InIt _First, _InIt _Last, _OutIt _Dest, _Pr _Pred)
Definition: algorithm:1545
_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
1531  { // check and push non-empty heap+addition
1532  _STLCLRDB_HEAP(_First, _Last - 1);
1534  }
1535  }
1536 
1537  // TEMPLATE FUNCTION push_heap WITH PRED
1538 template<class _RanIt,
1539  class _Diff,
1540  class _Ty,
#define _STLCLRDB_HEAP(first, last)
Definition: algorithm:1489
_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 _FwdIt , class _OutIt , class _Pr >
_OutIt _Unique_copy_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_OutIt  _Dest,
_Pr &  _Pred,
true_type  ,
_Any_tag   
)
inline
1472  { // test if range is a heap ordered by _Pred
1474 
1475  _Diff _Size = _Last - _First;
1476  if (2 <= _Size)
1477  for (_Diff _Off = 0; ++_Off < _Size; )
1478  if (_STLCLRDB_LT_PRED(_Pred, *(_First + (_Off - 1) / 2),
1479  *(_First + _Off)))
1480  _STLCLRDB_ERROR(L"invalid heap");
1481  }
1482 
1483  #define _STLCLRDB_HEAP(first, last) \
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT_PRED(pred, left, right)
Definition: memory:219
_CRT_BEGIN_C_HEADER _Check_return_ _Ret_maybenull_ _In_ size_t _Size
Definition: corecrt_malloc.h:58
Definition: xutility:620
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _FwdIt , class _Pr >
_FwdIt _Unique_copy_unchecked ( _InIt  _First,
_InIt  _Last,
_FwdIt  _Dest,
_Pr &  _Pred,
false_type  ,
true_type   
)
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)
#define _STLCLRDB_LT(left, right)
Definition: memory:218
_FwdIt const _Ty _Val
Definition: algorithm:1938
template<class _InIt , class _OutIt , class _Pr >
_OutIt _Unique_copy_unchecked ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Pr &  _Pred,
false_type  ,
false_type   
)
inline
1513  { // push *(_Last - 1) onto heap at [_First, _Last - 1), using operator<
1516 
1517  --_Last;
1518  _Diff _Count = _Last - _First;
1519  if (0 < _Count)
1520  cliext::_XPush_heap(_First, _Count, _Diff(0), _Ty(*_Last));
1521  }
1522 
1523 template<class _RanIt> inline
1524  void push_heap(_RanIt _First, _RanIt _Last)
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:2148
Definition: xutility:620
_Diff _Count
Definition: algorithm:1941
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt , class _Pr >
_FwdIt _Unique_unchecked ( _FwdIt  _First,
_FwdIt  _Last,
_Pr &  _Pred 
)
inline
1432  { // partition nontrivial sequence
1433  _Diff _Count = 0;
1434  _Iter_distance(_First, _Last, _Count);
1435  _TEMP_ITER(_BidIt, _Ty) _Tempbuf(_Count);
1436 
1437  return (cliext::_XStable_partition(_First, _Last, _Pred, _Count,
1438  _Tempbuf));
1439  }
1440  }
1441 
1442 template<class _BidIt,
1443  class _Pr> inline
1444  _BidIt stable_partition(_BidIt _First, _BidIt _Last,
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _TEMP_ITER(iter_t, value_t)
Definition: memory:244
_BidIt stable_partition(_BidIt _First, _BidIt _Last, _Pr _Pred)
Definition: algorithm:2078
return(cliext::equal_range_unchecked(_Unchecked(_First), _Unchecked(_Last), _Val, _Pred))
_Iter_distance(_First, _Last, _Count)
_Diff _Count
Definition: algorithm:1941
Definition: adapter:7
_BidIt _XStable_partition(_BidIt _First, _BidIt _Last, _Pr _Pred, _Diff _Count, _Temp_iterator< _Ty > _Tempbuf)
Definition: algorithm:1337
_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
2345  { // merge [_First, _Mid) with [_Mid, _Last), using operator<
2346  _STLCLRDB_ORDER(_First, _Mid);
2347  _STLCLRDB_ORDER(_Mid, _Last);
2349  _Unchecked(_First), _Unchecked(_Mid), _Unchecked(_Last));
2350  }
2351 
2352  // TEMPLATE FUNCTION inplace_merge WITH PRED
2353 template<class _BidIt1,
2354  class _BidIt2,
2355  class _BidIt3,
2356  class _Pr> inline
2357  _BidIt3 _XMerge_backward(_BidIt1 _First1, _BidIt1 _Last1,
2358  _BidIt2 _First2, _BidIt2 _Last2, _BidIt3 _Dest, _Pr _Pred)
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))
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT_PRED(pred, left, right)
Definition: memory:219
#define _STLCLRDB_ORDER(first, last)
Definition: memory:223
unsigned _Dest
Definition: mbstring.h:107
void inplace_merge_unchecked(_BidIt _First, _BidIt _Mid, _BidIt _Last)
Definition: algorithm:2324
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
_BidIt2 copy_backward_unchecked(_BidIt1 _First, _BidIt1 _Last, _BidIt2 _Dest)
Definition: memory:514
_FwdIt _Last
Definition: algorithm:1936
_BidIt3 _XMerge_backward(_BidIt1 _First1, _BidIt1 _Last1, _BidIt2 _First2, _BidIt2 _Last2, _BidIt3 _Dest, _Pr _Pred)
Definition: algorithm:2357
template<class _FwdIt , class _Pr >
_FwdIt adjacent_find ( _FwdIt  _First,
_FwdIt  _Last,
_Pr  _Pred 
)
inline
196  { // find first [_First2, _Last2) match
199 
Definition: xutility:620
template<class _FwdIt >
_FwdIt adjacent_find ( _FwdIt  _First,
_FwdIt  _Last 
)
inline
206  { // room for match, try it
template<class _InIt , class _Pr >
bool all_of ( _InIt  _First,
_InIt  _Last,
_Pr  _Pred 
)
inline
381  { // find first _Count * _Val satisfying _Pred, random-access iterators
template<class _InIt , class _Pr >
bool any_of ( _InIt  _First,
_InIt  _Last,
_Pr  _Pred 
)
inline
389  { // found part of possible match, check it out
390  _Diff2 _Count1 = _Count;
391  _FwdIt1 _Mid1 = _First1;
392 
_Diff _Count
Definition: algorithm:1941
template<class _FwdIt , class _Ty , class _Pr >
bool binary_search ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val,
_Pr  _Pred 
)
inline
2458  { // left larger, cut it in half and partition right to match
2459  _Count1n = _Count1 / 2, _Count2n = 0;
2460  _Firstn = _First;
2461  cliext::advance(_Firstn, _Count1n);
2462  _Lastn = cliext::lower_bound_unchecked(_Mid, _Last,
2463  *_Firstn, _Pred);
_FwdIt lower_bound_unchecked(_FwdIt _First, _FwdIt _Last, _Ty%_Val)
Definition: algorithm:1797
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt , class _Ty >
bool binary_search ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val 
)
inline
template<class _InIt , class _OutIt , class _Pr >
_OutIt copy_if ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Pr  _Pred 
)
inline
477  { // find last [_First2, _Last2) satisfying _Pred
template<class _InIt , class _Pr >
iterator_traits<_InIt>::difference_type count_if ( _InIt  _First,
_InIt  _Last,
_Pr  _Pred 
)
inline
234  { // find first [_First2, _Last2) satisfying _Pred
template<class _FwdIt , class _Ty , class _Pr >
pair<_FwdIt, _FwdIt> equal_range ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val,
_Pr  _Pred 
)
inline
2435  { // merge [_First, _Mid) with [_Mid, _Last), using _Pred
template<class _FwdIt , class _Ty >
pair<_FwdIt, _FwdIt> equal_range ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val 
)
inline
2437  { // order two one-element partitions
2438  if (_STLCLRDB_LT_PRED(_Pred, *_Mid, *_First))
2439  cliext::iter_swap(_First, _Mid);
2440  }
2441  else if (_Count1 <= _Count2 && _Count1 <= _Tempbuf._Maxlen())
_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 _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 find_end ( _FwdIt1  _First1,
_FwdIt1  _Last1,
_FwdIt2  _First2,
_FwdIt2  _Last2,
_Pr  _Pred 
)
inline
848  { // remove each matching _Val
849  _First = cliext::find_unchecked(_First, _Last, _Val);
850  if (_First == _Last)
851  return (_First); // empty sequence, all done
_InIt find_unchecked(_InIt _First, _InIt _Last, const _Ty%_Val)
Definition: algorithm:37
_FwdIt const _Ty _Val
Definition: algorithm:1938
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt1 find_end ( _FwdIt1  _First1,
_FwdIt1  _Last1,
_FwdIt2  _First2,
_FwdIt2  _Last2 
)
inline
862  { // remove each matching _Val
template<class _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 find_first_of ( _FwdIt1  _First1,
_FwdIt1  _Last1,
_FwdIt2  _First2,
_FwdIt2  _Last2,
_Pr  _Pred 
)
inline
888  { // remove each satisfying _Pred
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt1 find_first_of ( _FwdIt1  _First1,
_FwdIt1  _Last1,
_FwdIt2  _First2,
_FwdIt2  _Last2 
)
inline
898  { // remove each matching previous
template<class _InIt , class _Pr >
_InIt find_if ( _InIt  _First,
_InIt  _Last,
_Pr  _Pred 
)
inline
template<class _InIt , class _Pr >
_InIt find_if_not ( _InIt  _First,
_InIt  _Last,
_Pr  _Pred 
)
inline
433  { // find last [_First2, _Last2) match
template<class _InIt , class _Fn1 >
_Fn1 for_each ( _InIt  _First,
_InIt  _Last,
_Fn1  _Func 
)
inline
160  { // count elements that match _Val
template<class _FwdIt , class _Fn0 >
void generate ( _FwdIt  _First,
_FwdIt  _Last,
_Fn0  _Func 
)
inline
1243  { // shuffle [_First, _Last)
1245 
1246  if (_First != _Last)
1247  { // shuffle nontrivial [_First, _Last)
Definition: xutility:620
_FwdIt _Last
Definition: algorithm:1936
template<class _OutIt , class _Diff , class _Fn0 >
_OutIt generate_n ( _OutIt  _Dest,
_Diff  _Count,
_Fn0  _Func 
)
inline
1269  { // shuffle [_First, _Last)
template<class _InIt1 , class _InIt2 , class _Pr >
bool includes ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_Pr  _Pred 
)
inline
3202  { // order [First, _Last) up to _Mid, using operator<
3204 
3205  cliext::make_heap_unchecked(_First, _Mid);
3206 
3207  for (_RanIt _Next = _Mid; _Next < _Last; ++_Next)
3208  if (_STLCLRDB_LT(*_Next, *_First))
#define _STLCLRDB_LT(left, right)
Definition: memory:218
void make_heap_unchecked(_RanIt _First, _RanIt _Last)
Definition: algorithm:1702
Definition: xutility:620
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt1 , class _InIt2 >
bool includes ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2 
)
inline
3216  { // order [First, _Last) up to _Mid, using operator<
3217  _STLCLRDB_RANGE(_First, _Mid);
3218  _STLCLRDB_RANGE(_Mid, _Last);
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _BidIt , class _Pr >
void inplace_merge ( _BidIt  _First,
_BidIt  _Mid,
_BidIt  _Last,
_Pr  _Pred 
)
inline
2753  { // partition
template<class _BidIt >
void inplace_merge ( _BidIt  _First,
_BidIt  _Mid,
_BidIt  _Last 
)
inline
2753  { // partition
template<class _RanIt , class _Pr >
bool is_heap ( _RanIt  _First,
_RanIt  _Last,
_Pr  _Pred 
)
inline
3950  { // reverse permute and test for pure descending, using _Pred
template<class _RanIt >
bool is_heap ( _RanIt  _First,
_RanIt  _Last 
)
inline
template<class _RanIt , class _Pr >
_RanIt is_heap_until ( _RanIt  _First,
_RanIt  _Last,
_Pr  _Pred 
)
inline
3940  { // pure ascending, flip all
template<class _RanIt >
_RanIt is_heap_until ( _RanIt  _First,
_RanIt  _Last 
)
inline
template<class _InIt , class _Pr >
bool is_partitioned ( _InIt  _First,
_InIt  _Last,
_Pr  _Pred 
)
inline
606  { // transform [_First, _Last) with _Func
template<class _FwdIt , class _Pr >
bool is_sorted ( _FwdIt  _First,
_FwdIt  _Last,
_Pr  _Pred 
)
inline
template<class _FwdIt >
bool is_sorted ( _FwdIt  _First,
_FwdIt  _Last 
)
inline
template<class _FwdIt , class _Pr >
_FwdIt is_sorted_until ( _FwdIt  _First,
_FwdIt  _Last,
_Pr  _Pred 
)
inline
template<class _FwdIt >
_FwdIt is_sorted_until ( _FwdIt  _First,
_FwdIt  _Last 
)
inline
template<class _FwdIt , class _Ty , class _Pr >
_FwdIt lower_bound ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val,
_Pr  _Pred 
)
inline
2325  { // merge [_First, _Mid) with [_Mid, _Last), using operator<
2328 
2329  if (_First != _Mid && _Mid != _Last)
2330  { // merge nontrivial sequence
Definition: xutility:620
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt , class _Ty >
_FwdIt lower_bound ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val 
)
inline
2336  : _Count2);
2337 
2338  cliext::_XBuffered_merge(_First, _Mid, _Last,
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 _RanIt , class _Pr >
void make_heap ( _RanIt  _First,
_RanIt  _Last,
_Pr  _Pred 
)
inline
template<class _RanIt >
void make_heap ( _RanIt  _First,
_RanIt  _Last 
)
inline
2273  { // merge [_First, _Mid) with [_Mid, _Last), using operator<
template<class _Ty , class _Pr >
constexpr const _Ty&() max ( const _Ty &  _Left,
const _Ty &  _Right,
_Pr  _Pred 
)
inline
template<class _Ty , class _Pr >
_CONSTEXPR14 _Ty() max ( initializer_list< _Ty >  _Ilist,
_Pr  _Pred 
)
3732  { // find largest element, using operator<
3733  _STLCLRDB_RANGE(_First, _Last);
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt _Last
Definition: algorithm:1936
template<class _Ty >
_CONSTEXPR14 _Ty() max ( initializer_list< _Ty >  _Ilist)
3754  { // find largest element, using _Pred
template<class _FwdIt , class _Pr >
_CONSTEXPR14 _FwdIt max_element ( _FwdIt  _First,
_FwdIt  _Last,
_Pr  _Pred 
)
3626  { // take set [_First2, _Last2) from [_First1, _Last1), using _Pred
template<class _FwdIt >
_CONSTEXPR14 _FwdIt max_element ( _FwdIt  _First,
_FwdIt  _Last 
)
3626  { // take set [_First2, _Last2) from [_First1, _Last1), using _Pred
3627  for (; _First1 != _Last1 && _First2 != _Last2; )
3628  if (_STLCLRDB_LT_PRED(_Pred, *_First1, *_First2))
3629  *_Dest++ = *_First1, ++_First1;
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#define _STLCLRDB_LT_PRED(pred, left, right)
Definition: memory:219
unsigned _Dest
Definition: mbstring.h:107
template<class _InIt1 , class _InIt2 , class _OutIt , class _Pr >
_OutIt merge ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest,
_Pr  _Pred 
)
inline
2558  { // sort median element to middle
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt merge ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest 
)
inline
2592  { // partition
template<class _Ty , class _Pr >
constexpr const _Ty&() min ( const _Ty &  _Left,
const _Ty &  _Right,
_Pr  _Pred 
)
inline
template<class _Ty , class _Pr >
_CONSTEXPR14 _Ty() min ( initializer_list< _Ty >  _Ilist,
_Pr  _Pred 
)
3775  { // find smallest element, using operator<
template<class _Ty >
_CONSTEXPR14 _Ty() min ( initializer_list< _Ty >  _Ilist)
3785  { // find smallest element, using _Pred
3786  _FwdIt _Found = _First;
3787  if (_First != _Last)
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt , class _Pr >
_CONSTEXPR14 _FwdIt min_element ( _FwdIt  _First,
_FwdIt  _Last,
_Pr  _Pred 
)
3658  { // XOR sets [_First1, _Last1) and [_First2, _Last2), using operator<
template<class _FwdIt >
_CONSTEXPR14 _FwdIt min_element ( _FwdIt  _First,
_FwdIt  _Last 
)
3658  { // XOR 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
3797  { // find smallest element, using _Pred
3798  _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 _Ty , class _Pr >
_CONSTEXPR14 pair<_Ty, _Ty> minmax ( initializer_list< _Ty >  _Ilist,
_Pr  _Pred 
)
3807  { // permute and test for pure ascending, using operator<
3808  _BidIt _Next = _Last;
3809  if (_First == _Last || _First == --_Next)
_FwdIt _Last
Definition: algorithm:1936
template<class _Ty >
constexpr pair<const _Ty&, const _Ty&> minmax ( const _Ty &  _Left,
const _Ty &  _Right 
)
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 _Ty >
_CONSTEXPR14 pair<_Ty, _Ty> minmax ( initializer_list< _Ty >  _Ilist)
3826  { // pure descending, flip all
template<class _FwdIt , class _Pr >
_CONSTEXPR14 pair<_FwdIt, _FwdIt> minmax_element ( _FwdIt  _First,
_FwdIt  _Last,
_Pr  _Pred 
)
3709  { // XOR sets [_First1, _Last1) and [_First2, _Last2), using _Pred
template<class _FwdIt >
_CONSTEXPR14 pair<_FwdIt, _FwdIt> minmax_element ( _FwdIt  _First,
_FwdIt  _Last 
)
3721  { // find largest element, using operator<
template<class _InIt1 , class _InIt2 , class _Pr >
pair<_InIt1, _InIt2> mismatch ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_Pr  _Pred 
)
inline
274  { // find first _Count * _Val match, forward iterators
template<class _InIt1 , class _InIt2 >
pair<_InIt1, _InIt2> mismatch ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2 
)
inline
301  { // find first _Count * _Val match, random-access iterators
template<class _InIt1 , class _InIt2 , class _Pr >
pair<_InIt1, _InIt2> mismatch ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_Pr  _Pred 
)
inline
340  { // find first _Count * _Val match
341  _STLCLRDB_RANGE(_First1, _Last1);
342  return (_Search_n(_Unchecked(_First1), _Unchecked(_Last1),
343  _Count, _Val, _Iter_category(_First1)));
_FwdIt1 _Search_n(_FwdIt1 _First1, _FwdIt1 _Last1, _Diff2 _Count, const _Ty%_Val, _Pr _Pred, random_access_iterator_tag)
Definition: algorithm:379
iterator_traits< _Iter_t >::iterator_category _Iter_category(_Iter_t)
Definition: xutility:654
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_Diff _Count
Definition: algorithm:1941
_FwdIt const _Ty _Val
Definition: algorithm:1938
template<class _InIt1 , class _InIt2 >
pair<_InIt1, _InIt2> mismatch ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2 
)
inline
353  { // find first _Count * _Val satisfying _Pred, forward iterators
354  if (_Count <= 0)
_Diff _Count
Definition: algorithm:1941
template<class _BidIt , class _Pr >
bool next_permutation ( _BidIt  _First,
_BidIt  _Last,
_Pr  _Pred 
)
inline
3864  { // pure descending, flip all
template<class _BidIt >
bool next_permutation ( _BidIt  _First,
_BidIt  _Last 
)
inline
3874  { // permute and test for pure ascending, using _Pred
template<class _InIt , class _Pr >
bool none_of ( _InIt  _First,
_InIt  _Last,
_Pr  _Pred 
)
inline
407  { // no match, take big jump and back up as needed
408  _Oldfirst1 = _First1 + 1;
409  _First1 += _Count;
410  }
411  }
_Diff _Count
Definition: algorithm:1941
template<class _RanIt , class _Pr >
void nth_element ( _RanIt  _First,
_RanIt  _Nth,
_RanIt  _Last,
_Pr  _Pred 
)
inline
3176  { // sort preserving order of equivalents, using _Pred
template<class _RanIt >
void nth_element ( _RanIt  _First,
_RanIt  _Nth,
_RanIt  _Last 
)
inline
3176  { // sort preserving order of equivalents, using _Pred
template<class _RanIt , class _Pr >
void partial_sort ( _RanIt  _First,
_RanIt  _Mid,
_RanIt  _Last,
_Pr  _Pred 
)
inline
3079  { // sort using temp buffer for merges, using _Pred
template<class _RanIt >
void partial_sort ( _RanIt  _First,
_RanIt  _Mid,
_RanIt  _Last 
)
inline
3082  { // sort chunks
3083  _BidIt _Midn = _Mid;
3084  cliext::advance(_Midn, (int)_ISort::_Max);
3085 
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
template<class _InIt , class _RanIt , class _Pr >
_RanIt partial_sort_copy ( _InIt  _First1,
_InIt  _Last1,
_RanIt  _First2,
_RanIt  _Last2,
_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
3124  { // temp buffer not big enough, divide and conquer
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
void _XBuffered_merge_sort(_BidIt _First, _BidIt _Last, _Diff _Count, _Temp_iterator< _Ty > _Tempbuf)
Definition: algorithm:2872
_Diff _Count
Definition: algorithm:1941
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _RanIt >
_RanIt partial_sort_copy ( _InIt  _First1,
_InIt  _Last1,
_RanIt  _First2,
_RanIt  _Last2 
)
inline
3143  { // sort preserving order of equivalents, using _Pred
template<class _FwdIt , class _Pr >
_FwdIt partition ( _FwdIt  _First,
_FwdIt  _Last,
_Pr  _Pred 
)
inline
1903  { // find first element that _Val is before, using _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 
)
inline
534  { // look for one of [_First2, _Last2) that matches element
template<class _FwdIt , class _Pr >
_FwdIt partition_point ( _FwdIt  _First,
_FwdIt  _Last,
_Pr  _Pred 
)
inline
644  { // transform [_First1, _Last1) and [_First2, _Last2) with _Func
template<class _RanIt , class _Pr >
void pop_heap ( _RanIt  _First,
_RanIt  _Last,
_Pr  _Pred 
)
inline
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);
_OutIt merge_unchecked(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
Definition: algorithm:2073
_OutIt copy_unchecked(_InIt _First, _InIt _Last, _OutIt _Dest)
Definition: memory:490
_FwdIt _Last
Definition: algorithm:1936
template<class _RanIt >
void pop_heap ( _RanIt  _First,
_RanIt  _Last 
)
inline
2236  { // buffer too small, divide and conquer
template<class _BidIt , class _Pr >
bool prev_permutation ( _BidIt  _First,
_BidIt  _Last,
_Pr  _Pred 
)
inline
3911  { // reverse permute and test for pure descending, using operator<
template<class _BidIt >
bool prev_permutation ( _BidIt  _First,
_BidIt  _Last 
)
inline
3921  { // reverse permute and test for pure descending, using _Pred
template<class _RanIt , class _Pr >
void push_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);
_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 push_heap ( _RanIt  _First,
_RanIt  _Last 
)
inline
2157  { // buffer too small, rotate in place
2158  cliext::rotate_unchecked(_First, _Mid, _Last);
2159  cliext::advance(_First, _Count2);
void rotate_unchecked(_FwdIt _First, _FwdIt _Mid, _FwdIt _Last)
Definition: algorithm:1193
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt , class _Ty >
_FwdIt remove ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val 
)
inline
1401  { // temp buffer not big enough, divide and conquer
template<class _InIt , class _OutIt , class _Ty >
_OutIt remove_copy ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
const _Ty &  _Val 
)
inline
1304  { // move elements satisfying _Pred to beginning of sequence
1305  for (; ; ++_First)
1306  { // find any out-of-order pair
1307  for (; _First != _Last && _Pred(*_First); ++_First)
1308  ; // skip in-place elements at beginning
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _OutIt , class _Pr >
_OutIt remove_copy_if ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Pr  _Pred 
)
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,
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
constexpr const _Ty &() _Left
Definition: algorithm:3722
void advance(_InIt_t%_Where, _Diff_t _Off)
Definition: xutility:694
_Diff _Count
Definition: algorithm:1941
_BidIt _XStable_partition(_BidIt _First, _BidIt _Last, _Pr _Pred, _Diff _Count, _Temp_iterator< _Ty > _Tempbuf)
Definition: algorithm:1337
template<class _FwdIt , class _Pr >
_FwdIt remove_if ( _FwdIt  _First,
_FwdIt  _Last,
_Pr  _Pred 
)
inline
1425  { // partition preserving order of equivalents, using _Pred
Definition: xutility:620
template<class _FwdIt , class _Ty >
void replace ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Oldval,
const _Ty &  _Newval 
)
inline
1093  { // reverse elements in [_First, _Last), random-access iterators
1094  for (; _First < _Last; ++_First)
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _OutIt , class _Ty >
_OutIt replace_copy ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
const _Ty &  _Oldval,
const _Ty &  _Newval 
)
inline
1152  { // rotate [_First, _Last), bidirectional iterators
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
1214  { // copy rotating [_First, _Last)
unsigned _Dest
Definition: mbstring.h:107
_OutIt copy_unchecked(_InIt _First, _InIt _Last, _OutIt _Dest)
Definition: memory:490
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt , class _Pr , class _Ty >
void replace_if ( _FwdIt  _First,
_FwdIt  _Last,
_Pr  _Pred,
const _Ty &  _Val 
)
inline
1115  { // copy reversing elements in [_First, _Last)
template<class _BidIt , class _OutIt >
_OutIt reverse_copy ( _BidIt  _First,
_BidIt  _Last,
_OutIt  _Dest 
)
inline
1603  { // only child at bottom, move _Hole down to it
1604  *(_First + _Hole) = *(_First + (_Bottom - 1));
1605  _Hole = _Bottom - 1;
1606  }
1607  cliext::_XPush_heap(_First, _Hole, _Top, _Val);
1608  }
1609 
1610 template<class _RanIt,
void _XPush_heap(_RanIt _First, _Diff _Hole, _Diff _Top, _Ty _Val)
Definition: algorithm:1497
_FwdIt const _Ty _Val
Definition: algorithm:1938
template<class _FwdIt , class _OutIt >
_OutIt rotate_copy ( _FwdIt  _First,
_FwdIt  _Mid,
_FwdIt  _Last,
_OutIt  _Dest 
)
inline
1646  { // percolate _Hole to _Bottom, then push _Val, using _Pred
1647  _Diff _Top = _Hole;
1648  _Diff _Idx = 2 * _Hole + 2;
template<class _FwdIt1 , class _FwdIt2 , class _Pr >
_FwdIt1 search ( _FwdIt1  _First1,
_FwdIt1  _Last1,
_FwdIt2  _First2,
_FwdIt2  _Last2,
_Pr  _Pred 
)
inline
692  { // replace each satisfying _Pred with _Val
693  _STLCLRDB_RANGE(_First, _Last);
696  _Pred, _Val);
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
#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
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
_FwdIt const _Ty _Val
Definition: algorithm:1938
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt1 search ( _FwdIt1  _First1,
_FwdIt1  _Last1,
_FwdIt2  _First2,
_FwdIt2  _Last2 
)
inline
705  { // copy replacing each matching _Oldval with _Newval
706  for (; _First != _Last; ++_First, ++_Dest)
unsigned _Dest
Definition: mbstring.h:107
_FwdIt _Last
Definition: algorithm:1936
template<class _FwdIt , class _Diff , class _Ty , class _Pr >
_FwdIt search_n ( _FwdIt  _First,
_FwdIt  _Last,
_Diff  _Count,
const _Ty &  _Val,
_Pr  _Pred 
)
inline
796  { // copy omitting each matching _Val
797  for (; _First != _Last; ++_First)
_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
808  { // copy omitting each matching _Val
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
3450  { // test if set [_First1, _Last1) in [_First2, _Last2), using _Pred
3451  _STLCLRDB_ORDER_PRED(_First1, _Last1, _Pred);
3452  _STLCLRDB_ORDER_PRED(_First2, _Last2, _Pred);
3454  _Unchecked(_First1), _Unchecked(_Last1),
3455  _Unchecked(_First2), _Unchecked(_Last2), _Pred));
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
bool includes_unchecked(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2)
Definition: algorithm:3403
_Iter_t _Unchecked(_Iter_t _Iter)
Definition: iterator:11
#define _STLCLRDB_ORDER_PRED(first, last, pred)
Definition: memory:224
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt set_difference ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest 
)
inline
3481  { // OR sets [_First1, _Last1) and [_First2, _Last2), using operator<
3482  _STLCLRDB_ORDER(_First1, _Last1);
3483  _STLCLRDB_ORDER(_First2, _Last2);
#define _STLCLRDB_ORDER(first, last)
Definition: memory:223
unsigned _Dest
Definition: mbstring.h:107
#define _STLCLRDB_POINTER(first)
Definition: memory:221
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
3360  { // order Nth element, using operator<
3361  _STLCLRDB_RANGE(_First, _Nth);
#define _STLCLRDB_RANGE(first, last)
Definition: memory:226
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt set_intersection ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest 
)
inline
3392  { // order Nth element, using _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 
)
inline
3562  { // AND sets [_First1, _Last1) and [_First2, _Last2), using _Pred
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt set_symmetric_difference ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest 
)
inline
3594  { // take set [_First2, _Last2) from [_First1, _Last1), using operator<
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
template<class _InIt1 , class _InIt2 , class _OutIt >
_OutIt set_union ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_InIt2  _Last2,
_OutIt  _Dest 
)
inline
3299  { // copy [First1, _Last1) into [_First2, _Last2) using _Pred
Definition: xutility:620
template<class _RanIt , class _Urng >
void shuffle ( _RanIt  _First,
_RanIt  _Last,
_Urng &&  _Func 
)
inline
1806  { // divide and conquer, find half that contains answer
1807  _Diff _Count2 = _Count / 2;
_Diff _Count
Definition: algorithm:1941
template<class _RanIt , class _Pr >
void sort ( _RanIt  _First,
_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,
void _XChunked_merge(_BidIt _First, _BidIt _Last, _OutIt _Dest, _Diff _Chunk, _Diff _Count)
Definition: algorithm:2842
_Diff _Count
Definition: algorithm:1941
_FwdIt _Last
Definition: algorithm:1936
template<class _RanIt >
void sort ( _RanIt  _First,
_RanIt  _Last 
)
inline
2928  { // sort preserving order of equivalents, using operator<
template<class _RanIt , class _Pr >
void sort_heap ( _RanIt  _First,
_RanIt  _Last,
_Pr  _Pred 
)
inline
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())
_OutIt merge_unchecked(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest)
Definition: algorithm:2073
_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
2292  { // buffer too small, divide and conquer
template<class _BidIt , class _Pr >
_BidIt stable_partition ( _BidIt  _First,
_BidIt  _Last,
_Pr  _Pred 
)
inline
2091  { // copy merging ranges, both using operator<
template<class _BidIt , class _Pr >
void stable_sort ( _BidIt  _First,
_BidIt  _Last,
_Pr  _Pred 
)
inline
3051  { // sort using temp buffer for merges, using _Pred
template<class _BidIt >
void stable_sort ( _BidIt  _First,
_BidIt  _Last 
)
inline
3051  { // sort using temp buffer for merges, using _Pred
template<class _FwdIt1 , class _FwdIt2 >
_FwdIt2 swap_ranges ( _FwdIt1  _First1,
_FwdIt1  _Last1,
_FwdIt2  _Dest 
)
inline
922  { // remove each satisfying _Pred with previous
923  for (_FwdIt _Firstb; (_Firstb = _First) != _Last && ++_First != _Last; )
_FwdIt _Last
Definition: algorithm:1936
template<class _InIt , class _OutIt , class _Fn1 >
_OutIt transform ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Fn1  _Func 
)
inline
976  { // copy compressing pairs that match, bidirectional iterators
template<class _InIt1 , class _InIt2 , class _OutIt , class _Fn2 >
_OutIt transform ( _InIt1  _First1,
_InIt1  _Last1,
_InIt2  _First2,
_OutIt  _Dest,
_Fn2  _Func 
)
inline
1029  { // copy compressing pairs satisfying _Pred, forward iterators
template<class _FwdIt , class _Pr >
_FwdIt unique ( _FwdIt  _First,
_FwdIt  _Last,
_Pr  _Pred 
)
inline
1458  { // test if range is a heap ordered by operator<
template<class _FwdIt >
_FwdIt unique ( _FwdIt  _First,
_FwdIt  _Last 
)
inline
1458  { // test if range is a heap ordered by operator<
1460 
Definition: xutility:620
template<class _InIt , class _OutIt , class _Pr >
_OutIt unique_copy ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest,
_Pr  _Pred 
)
inline
1548  { // move _Hole up to parent
1549  *(_First + _Hole) = *(_First + _Idx);
1550  _Hole = _Idx;
template<class _InIt , class _OutIt >
_OutIt unique_copy ( _InIt  _First,
_InIt  _Last,
_OutIt  _Dest 
)
inline
1572  { // push *(_Last - 1) onto heap at [_First, _Last - 1), using _Pred
Definition: xutility:620
template<class _FwdIt , class _Ty , class _Pr >
_FwdIt upper_bound ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val,
_Pr  _Pred 
)
inline
2378  { // merge [_First, _Mid) with [_Mid, _Last), using _Pred
template<class _FwdIt , class _Ty >
_FwdIt upper_bound ( _FwdIt  _First,
_FwdIt  _Last,
const _Ty &  _Val 
)
inline
2385  { // buffer left partition, then merge

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:3722
#define _DEBUG_LT_PRED(pred, x, y)
Definition: xutility:900
constexpr const _Ty &() _Right
Definition: algorithm:3723
const _Ty & _Right
Initial value:
{
_FwdIt const _Ty _Pr _Pred
Definition: algorithm:1985
constexpr const _Ty &() _Left
Definition: algorithm:3722
#define _DEBUG_LT_PRED(pred, x, y)
Definition: xutility:900
constexpr const _Ty &() _Right
Definition: algorithm:3723
constexpr const _Ty&() _Right