ReactOS 0.4.16-dev-289-g096a551
_algo.h File Reference
#include <stl/_algobase.h>
#include <stl/_heap.h>
#include <stl/_iterator.h>
#include <stl/_function_base.h>
#include <stl/_algo.c>
Include dependency graph for _algo.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  __less_2< _T1, _T2 >
 

Functions

template<class _InputIter , class _Function >
_STLP_BEGIN_NAMESPACE _STLP_INLINE_LOOP _Function for_each (_InputIter __first, _InputIter __last, _Function __f)
 
template<class _InputIter , class _Predicate >
_STLP_INLINE_LOOP _STLP_DIFFERENCE_TYPE (_InputIter) count_if(_InputIter __first
 
 for (;__first !=__last;++__first)
 
template<class _ForwardIter , class _BinaryPredicate >
_STLP_INLINE_LOOP _ForwardIter adjacent_find (_ForwardIter __first, _ForwardIter __last, _BinaryPredicate __binary_pred)
 
template<class _ForwardIter >
_STLP_INLINE_LOOP _ForwardIter adjacent_find (_ForwardIter __first, _ForwardIter __last)
 
template<class _InputIter , class _Tp , class _Size >
_STLP_INLINE_LOOP void count (_InputIter __first, _InputIter __last, const _Tp &__val, _Size &__n)
 
template<class _InputIter , class _Predicate , class _Size >
_STLP_INLINE_LOOP void count_if (_InputIter __first, _InputIter __last, _Predicate __pred, _Size &__n)
 
template<class _ForwardIter1 , class _ForwardIter2 >
_ForwardIter1 search (_ForwardIter1 __first1, _ForwardIter1 __last1, _ForwardIter2 __first2, _ForwardIter2 __last2)
 
template<class _ForwardIter , class _Integer , class _Tp >
_ForwardIter search_n (_ForwardIter __first, _ForwardIter __last, _Integer __count, const _Tp &__val)
 
template<class _ForwardIter , class _Integer , class _Tp , class _BinaryPred >
_ForwardIter search_n (_ForwardIter __first, _ForwardIter __last, _Integer __count, const _Tp &__val, _BinaryPred __binary_pred)
 
template<class _InputIter , class _ForwardIter >
_InputIter find_first_of (_InputIter __first1, _InputIter __last1, _ForwardIter __first2, _ForwardIter __last2)
 
template<class _InputIter , class _ForwardIter , class _BinaryPredicate >
_InputIter find_first_of (_InputIter __first1, _InputIter __last1, _ForwardIter __first2, _ForwardIter __last2, _BinaryPredicate __comp)
 
template<class _ForwardIter1 , class _ForwardIter2 >
_ForwardIter1 find_end (_ForwardIter1 __first1, _ForwardIter1 __last1, _ForwardIter2 __first2, _ForwardIter2 __last2)
 
template<class _ForwardIter1 , class _ForwardIter2 >
_STLP_INLINE_LOOP _ForwardIter2 swap_ranges (_ForwardIter1 __first1, _ForwardIter1 __last1, _ForwardIter2 __first2)
 
template<class _InputIter , class _OutputIter , class _UnaryOperation >
_STLP_INLINE_LOOP _OutputIter transform (_InputIter __first, _InputIter __last, _OutputIter __result, _UnaryOperation __opr)
 
template<class _InputIter1 , class _InputIter2 , class _OutputIter , class _BinaryOperation >
_STLP_INLINE_LOOP _OutputIter transform (_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _OutputIter __result, _BinaryOperation __binary_op)
 
template<class _ForwardIter , class _Predicate , class _Tp >
_STLP_INLINE_LOOP void replace_if (_ForwardIter __first, _ForwardIter __last, _Predicate __pred, const _Tp &__new_value)
 
template<class _InputIter , class _OutputIter , class _Tp >
_STLP_INLINE_LOOP _OutputIter replace_copy (_InputIter __first, _InputIter __last, _OutputIter __result, const _Tp &__old_value, const _Tp &__new_value)
 
template<class _Iterator , class _OutputIter , class _Predicate , class _Tp >
_STLP_INLINE_LOOP _OutputIter replace_copy_if (_Iterator __first, _Iterator __last, _OutputIter __result, _Predicate __pred, const _Tp &__new_value)
 
template<class _ForwardIter , class _Generator >
_STLP_INLINE_LOOP void generate (_ForwardIter __first, _ForwardIter __last, _Generator __gen)
 
template<class _OutputIter , class _Size , class _Generator >
_STLP_INLINE_LOOP void generate_n (_OutputIter __first, _Size __n, _Generator __gen)
 
template<class _InputIter , class _OutputIter , class _Tp >
_STLP_INLINE_LOOP _OutputIter remove_copy (_InputIter __first, _InputIter __last, _OutputIter __result, const _Tp &__val)
 
template<class _InputIter , class _OutputIter , class _Predicate >
_STLP_INLINE_LOOP _OutputIter remove_copy_if (_InputIter __first, _InputIter __last, _OutputIter __result, _Predicate __pred)
 
template<class _ForwardIter , class _Tp >
_STLP_INLINE_LOOP _ForwardIter remove (_ForwardIter __first, _ForwardIter __last, const _Tp &__val)
 
template<class _ForwardIter , class _Predicate >
_STLP_INLINE_LOOP _ForwardIter remove_if (_ForwardIter __first, _ForwardIter __last, _Predicate __pred)
 
template<class _InputIter , class _OutputIter >
_OutputIter unique_copy (_InputIter __first, _InputIter __last, _OutputIter __result)
 
template<class _InputIter , class _OutputIter , class _BinaryPredicate >
_OutputIter unique_copy (_InputIter __first, _InputIter __last, _OutputIter __result, _BinaryPredicate __binary_pred)
 
template<class _ForwardIter >
_ForwardIter unique (_ForwardIter __first, _ForwardIter __last)
 
template<class _ForwardIter , class _BinaryPredicate >
_ForwardIter unique (_ForwardIter __first, _ForwardIter __last, _BinaryPredicate __binary_pred)
 
template<class _BidirectionalIter >
_STLP_MOVE_TO_PRIV_NAMESPACE _STLP_INLINE_LOOP void __reverse (_BidirectionalIter __first, _BidirectionalIter __last, const bidirectional_iterator_tag &)
 
template<class _RandomAccessIter >
_STLP_INLINE_LOOP void __reverse (_RandomAccessIter __first, _RandomAccessIter __last, const random_access_iterator_tag &)
 
template<class _BidirectionalIter >
_STLP_MOVE_TO_STD_NAMESPACE void reverse (_BidirectionalIter __first, _BidirectionalIter __last)
 
template<class _BidirectionalIter , class _OutputIter >
_STLP_INLINE_LOOP _OutputIter reverse_copy (_BidirectionalIter __first, _BidirectionalIter __last, _OutputIter __result)
 
template<class _ForwardIter >
void rotate (_ForwardIter __first, _ForwardIter __middle, _ForwardIter __last)
 
template<class _ForwardIter , class _OutputIter >
_OutputIter rotate_copy (_ForwardIter __first, _ForwardIter __middle, _ForwardIter __last, _OutputIter __result)
 
template<class _RandomAccessIter >
void random_shuffle (_RandomAccessIter __first, _RandomAccessIter __last)
 
template<class _RandomAccessIter , class _RandomNumberGenerator >
void random_shuffle (_RandomAccessIter __first, _RandomAccessIter __last, _RandomNumberGenerator &__rand)
 
template<class _ForwardIter , class _OutputIter , class _Distance >
_OutputIter random_sample_n (_ForwardIter __first, _ForwardIter __last, _OutputIter __out_ite, const _Distance __n)
 
template<class _ForwardIter , class _OutputIter , class _Distance , class _RandomNumberGenerator >
_OutputIter random_sample_n (_ForwardIter __first, _ForwardIter __last, _OutputIter __out_ite, const _Distance __n, _RandomNumberGenerator &__rand)
 
template<class _InputIter , class _RandomAccessIter >
_RandomAccessIter random_sample (_InputIter __first, _InputIter __last, _RandomAccessIter __out_first, _RandomAccessIter __out_last)
 
template<class _InputIter , class _RandomAccessIter , class _RandomNumberGenerator >
_RandomAccessIter random_sample (_InputIter __first, _InputIter __last, _RandomAccessIter __out_first, _RandomAccessIter __out_last, _RandomNumberGenerator &__rand)
 
template<class _ForwardIter , class _Predicate >
_ForwardIter partition (_ForwardIter __first, _ForwardIter __last, _Predicate __pred)
 
template<class _ForwardIter , class _Predicate >
_ForwardIter stable_partition (_ForwardIter __first, _ForwardIter __last, _Predicate __pred)
 
template<class _Size >
_STLP_MOVE_TO_PRIV_NAMESPACE _Size __lg (_Size __n)
 
template<class _RandomAccessIter >
_STLP_MOVE_TO_STD_NAMESPACE void sort (_RandomAccessIter __first, _RandomAccessIter __last)
 
template<class _RandomAccessIter , class _Compare >
void sort (_RandomAccessIter __first, _RandomAccessIter __last, _Compare __comp)
 
template<class _RandomAccessIter >
void stable_sort (_RandomAccessIter __first, _RandomAccessIter __last)
 
template<class _RandomAccessIter , class _Compare >
void stable_sort (_RandomAccessIter __first, _RandomAccessIter __last, _Compare __comp)
 
template<class _RandomAccessIter >
void partial_sort (_RandomAccessIter __first, _RandomAccessIter __middle, _RandomAccessIter __last)
 
template<class _RandomAccessIter , class _Compare >
void partial_sort (_RandomAccessIter __first, _RandomAccessIter __middle, _RandomAccessIter __last, _Compare __comp)
 
template<class _InputIter , class _RandomAccessIter >
_RandomAccessIter partial_sort_copy (_InputIter __first, _InputIter __last, _RandomAccessIter __result_first, _RandomAccessIter __result_last)
 
template<class _InputIter , class _RandomAccessIter , class _Compare >
_RandomAccessIter partial_sort_copy (_InputIter __first, _InputIter __last, _RandomAccessIter __result_first, _RandomAccessIter __result_last, _Compare __comp)
 
template<class _RandomAccessIter >
void nth_element (_RandomAccessIter __first, _RandomAccessIter __nth, _RandomAccessIter __last)
 
template<class _RandomAccessIter , class _Compare >
void nth_element (_RandomAccessIter __first, _RandomAccessIter __nth, _RandomAccessIter __last, _Compare __comp)
 
template<class _T1 , class _T2 >
__less_2< _T1, _T2 > __less2 (_T1 *, _T2 *)
 
template<class _ForwardIter , class _Tp >
_STLP_MOVE_TO_STD_NAMESPACE _ForwardIter lower_bound (_ForwardIter __first, _ForwardIter __last, const _Tp &__val)
 
template<class _ForwardIter , class _Tp , class _Compare >
_ForwardIter lower_bound (_ForwardIter __first, _ForwardIter __last, const _Tp &__val, _Compare __comp)
 
template<class _ForwardIter , class _Tp , class _Compare1 , class _Compare2 , class _Distance >
_STLP_MOVE_TO_PRIV_NAMESPACE _ForwardIter __upper_bound (_ForwardIter __first, _ForwardIter __last, const _Tp &__val, _Compare1 __comp1, _Compare2 __comp2, _Distance *)
 
template<class _ForwardIter , class _Tp >
_STLP_MOVE_TO_STD_NAMESPACE _ForwardIter upper_bound (_ForwardIter __first, _ForwardIter __last, const _Tp &__val)
 
template<class _ForwardIter , class _Tp , class _Compare >
_ForwardIter upper_bound (_ForwardIter __first, _ForwardIter __last, const _Tp &__val, _Compare __comp)
 
template<class _ForwardIter , class _Tp , class _Compare1 , class _Compare2 , class _Distance >
_STLP_MOVE_TO_PRIV_NAMESPACE pair< _ForwardIter, _ForwardIter > __equal_range (_ForwardIter __first, _ForwardIter __last, const _Tp &__val, _Compare1 __comp1, _Compare2 __comp2, _Distance *)
 
template<class _ForwardIter , class _Tp >
_STLP_MOVE_TO_STD_NAMESPACE pair< _ForwardIter, _ForwardIter > equal_range (_ForwardIter __first, _ForwardIter __last, const _Tp &__val)
 
template<class _ForwardIter , class _Tp , class _Compare >
pair< _ForwardIter, _ForwardIter > equal_range (_ForwardIter __first, _ForwardIter __last, const _Tp &__val, _Compare __comp)
 
template<class _ForwardIter , class _Tp >
bool binary_search (_ForwardIter __first, _ForwardIter __last, const _Tp &__val)
 
template<class _ForwardIter , class _Tp , class _Compare >
bool binary_search (_ForwardIter __first, _ForwardIter __last, const _Tp &__val, _Compare __comp)
 
template<class _InputIter1 , class _InputIter2 , class _OutputIter >
_OutputIter merge (_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result)
 
template<class _InputIter1 , class _InputIter2 , class _OutputIter , class _Compare >
_OutputIter merge (_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result, _Compare __comp)
 
template<class _BidirectionalIter >
void inplace_merge (_BidirectionalIter __first, _BidirectionalIter __middle, _BidirectionalIter __last)
 
template<class _BidirectionalIter , class _Compare >
void inplace_merge (_BidirectionalIter __first, _BidirectionalIter __middle, _BidirectionalIter __last, _Compare __comp)
 
template<class _InputIter1 , class _InputIter2 >
bool includes (_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2)
 
template<class _InputIter1 , class _InputIter2 , class _Compare >
bool includes (_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _Compare __comp)
 
template<class _InputIter1 , class _InputIter2 , class _OutputIter >
_OutputIter set_union (_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result)
 
template<class _InputIter1 , class _InputIter2 , class _OutputIter , class _Compare >
_OutputIter set_union (_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result, _Compare __comp)
 
template<class _InputIter1 , class _InputIter2 , class _OutputIter >
_OutputIter set_intersection (_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result)
 
template<class _InputIter1 , class _InputIter2 , class _OutputIter , class _Compare >
_OutputIter set_intersection (_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result, _Compare __comp)
 
template<class _InputIter1 , class _InputIter2 , class _OutputIter >
_OutputIter set_difference (_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result)
 
template<class _InputIter1 , class _InputIter2 , class _OutputIter , class _Compare >
_OutputIter set_difference (_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result, _Compare __comp)
 
template<class _InputIter1 , class _InputIter2 , class _OutputIter >
_OutputIter set_symmetric_difference (_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result)
 
template<class _InputIter1 , class _InputIter2 , class _OutputIter , class _Compare >
_OutputIter set_symmetric_difference (_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result, _Compare __comp)
 
template<class _ForwardIter >
_ForwardIter max_element (_ForwardIter __first, _ForwardIter __last)
 
template<class _ForwardIter , class _Compare >
_ForwardIter max_element (_ForwardIter __first, _ForwardIter __last, _Compare __comp)
 
template<class _ForwardIter >
_ForwardIter min_element (_ForwardIter __first, _ForwardIter __last)
 
template<class _ForwardIter , class _Compare >
_ForwardIter min_element (_ForwardIter __first, _ForwardIter __last, _Compare __comp)
 
template<class _BidirectionalIter >
bool next_permutation (_BidirectionalIter __first, _BidirectionalIter __last)
 
template<class _BidirectionalIter , class _Compare >
bool next_permutation (_BidirectionalIter __first, _BidirectionalIter __last, _Compare __comp)
 
template<class _BidirectionalIter >
bool prev_permutation (_BidirectionalIter __first, _BidirectionalIter __last)
 
template<class _BidirectionalIter , class _Compare >
bool prev_permutation (_BidirectionalIter __first, _BidirectionalIter __last, _Compare __comp)
 
template<class _RandomAccessIter >
bool is_heap (_RandomAccessIter __first, _RandomAccessIter __last)
 
template<class _RandomAccessIter , class _StrictWeakOrdering >
bool is_heap (_RandomAccessIter __first, _RandomAccessIter __last, _StrictWeakOrdering __comp)
 
template<class _ForwardIter , class _StrictWeakOrdering >
_STLP_MOVE_TO_PRIV_NAMESPACE bool __is_sorted (_ForwardIter __first, _ForwardIter __last, _StrictWeakOrdering __comp)
 
template<class _ForwardIter >
_STLP_MOVE_TO_STD_NAMESPACE bool is_sorted (_ForwardIter __first, _ForwardIter __last)
 
template<class _ForwardIter , class _StrictWeakOrdering >
bool is_sorted (_ForwardIter __first, _ForwardIter __last, _StrictWeakOrdering __comp)
 

Variables

_STLP_INLINE_LOOP _InputIter __last { return _STLP_PRIV __distance(__first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIterator))
 
_STLP_INLINE_LOOP _InputIter _Predicate __pred
 
return __n
 

Function Documentation

◆ __equal_range()

template<class _ForwardIter , class _Tp , class _Compare1 , class _Compare2 , class _Distance >
_STLP_MOVE_TO_PRIV_NAMESPACE pair< _ForwardIter, _ForwardIter > __equal_range ( _ForwardIter  __first,
_ForwardIter  __last,
const _Tp &  __val,
_Compare1  __comp1,
_Compare2  __comp2,
_Distance *  __dist 
)

Definition at line 1381 of file _algo.c.

1382 {
1383 _Distance __len = _STLP_STD::distance(__first, __last);
1384 _Distance __half;
1385
1386 while (__len > 0) {
1387 __half = __len >> 1;
1388 _ForwardIter __middle = __first;
1389 _STLP_STD::advance(__middle, __half);
1390 if (__comp1(*__middle, __val)) {
1391 _STLP_VERBOSE_ASSERT(!__comp2(__val, *__middle), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
1392 __first = __middle;
1393 ++__first;
1394 __len = __len - __half - 1;
1395 }
1396 else if (__comp2(__val, *__middle)) {
1397 _STLP_VERBOSE_ASSERT(!__comp1(*__middle, __val), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
1398 __len = __half;
1399 }
1400 else {
1401 _ForwardIter __left = _STLP_PRIV __lower_bound(__first, __middle, __val, __comp1, __comp2, __dist);
1402 //Small optim: If lower_bound haven't found an equivalent value
1403 //there is no need to call upper_bound.
1404 if (__comp1(*__left, __val)) {
1405 _STLP_VERBOSE_ASSERT(!__comp2(__val, *__left), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
1406 return pair<_ForwardIter, _ForwardIter>(__left, __left);
1407 }
1408 _STLP_STD::advance(__first, __len);
1409 _ForwardIter __right = _STLP_PRIV __upper_bound(++__middle, __first, __val, __comp1, __comp2, __dist);
1410 return pair<_ForwardIter, _ForwardIter>(__left, __right);
1411 }
1412 }
1413 return pair<_ForwardIter, _ForwardIter>(__first, __first);
1414}
_STLP_MOVE_TO_PRIV_NAMESPACE _ForwardIter __upper_bound(_ForwardIter __first, _ForwardIter __last, const _Tp &__val, _Compare1 __comp1, _Compare2 __comp2, _Distance *)
Definition: _algo.c:1356
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
_STLP_MOVE_TO_PRIV_NAMESPACE _ForwardIter __lower_bound(_ForwardIter __first, _ForwardIter __last, const _Tp &__val, _Compare1 __comp1, _Compare2 __comp2, _Distance *)
Definition: _algobase.c:453
_STLP_INLINE_LOOP _InputIter const _Tp & __val
Definition: _algobase.h:656
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
Definition: _debug.h:439
#define _STLP_PRIV
Definition: _dm.h:70
Definition: _pair.h:47

Referenced by equal_range().

◆ __is_sorted()

template<class _ForwardIter , class _StrictWeakOrdering >
_STLP_MOVE_TO_PRIV_NAMESPACE bool __is_sorted ( _ForwardIter  __first,
_ForwardIter  __last,
_StrictWeakOrdering  __comp 
)

Definition at line 2001 of file _algo.c.

2002 {
2003 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
2004 if (__first == __last)
2005 return true;
2006
2007 _ForwardIter __next = __first;
2008 for (++__next; __next != __last; __first = __next, ++__next) {
2009 if (__comp(*__next, *__first)) {
2010 _STLP_VERBOSE_ASSERT(!__comp(*__first, *__next), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
2011 return false;
2012 }
2013 }
2014
2015 return true;
2016}
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440

Referenced by is_sorted().

◆ __less2()

template<class _T1 , class _T2 >
__less_2< _T1, _T2 > __less2 ( _T1 *  ,
_T2 *   
)

Definition at line 470 of file _algo.h.

470{ return __less_2<_T1, _T2>(); }

Referenced by binary_search(), equal_range(), lower_bound(), and upper_bound().

◆ __lg()

template<class _Size >
_STLP_MOVE_TO_PRIV_NAMESPACE _Size __lg ( _Size  __n)
inline

Definition at line 409 of file _algo.h.

409 {
410 _Size __k;
411 for (__k = 0; __n != 1; __n >>= 1) ++__k;
412 return __k;
413}
return __n
Definition: _algo.h:75
_Check_return_ _Ret_maybenull_ _In_ size_t _In_ size_t _Size
Definition: malloc.h:109

Referenced by sort().

◆ __reverse() [1/2]

template<class _BidirectionalIter >
_STLP_MOVE_TO_PRIV_NAMESPACE _STLP_INLINE_LOOP void __reverse ( _BidirectionalIter  __first,
_BidirectionalIter  __last,
const bidirectional_iterator_tag  
)

Definition at line 316 of file _algo.h.

316 {
317 for (; __first != __last && __first != --__last; ++__first)
318 _STLP_STD::iter_swap(__first,__last);
319}

Referenced by __rotate_aux(), and reverse().

◆ __reverse() [2/2]

template<class _RandomAccessIter >
_STLP_INLINE_LOOP void __reverse ( _RandomAccessIter  __first,
_RandomAccessIter  __last,
const random_access_iterator_tag  
)

Definition at line 323 of file _algo.h.

323 {
324 for (; __first < __last; ++__first)
325 _STLP_STD::iter_swap(__first, --__last);
326}

◆ __upper_bound()

template<class _ForwardIter , class _Tp , class _Compare1 , class _Compare2 , class _Distance >
_STLP_MOVE_TO_PRIV_NAMESPACE _ForwardIter __upper_bound ( _ForwardIter  __first,
_ForwardIter  __last,
const _Tp &  __val,
_Compare1  __comp1,
_Compare2  __comp2,
_Distance *   
)

Definition at line 1356 of file _algo.c.

1357 {
1358 _Distance __len = _STLP_STD::distance(__first, __last);
1359 _Distance __half;
1360
1361 while (__len > 0) {
1362 __half = __len >> 1;
1363 _ForwardIter __middle = __first;
1364 _STLP_STD::advance(__middle, __half);
1365 if (__comp2(__val, *__middle)) {
1366 _STLP_VERBOSE_ASSERT(!__comp1(*__middle, __val), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
1367 __len = __half;
1368 }
1369 else {
1370 __first = __middle;
1371 ++__first;
1372 __len = __len - __half - 1;
1373 }
1374 }
1375 return __first;
1376}

Referenced by __equal_range(), and upper_bound().

◆ _STLP_DIFFERENCE_TYPE()

template<class _InputIter , class _Predicate >
_STLP_INLINE_LOOP _STLP_DIFFERENCE_TYPE ( _InputIter  )

◆ adjacent_find() [1/2]

template<class _ForwardIter >
_STLP_INLINE_LOOP _ForwardIter adjacent_find ( _ForwardIter  __first,
_ForwardIter  __last 
)

Definition at line 98 of file _algo.h.

98 {
99 return adjacent_find(__first, __last,
100 _STLP_PRIV __equal_to(_STLP_VALUE_TYPE(__first, _ForwardIter)));
101}
_STLP_INLINE_LOOP _ForwardIter adjacent_find(_ForwardIter __first, _ForwardIter __last, _BinaryPredicate __binary_pred)
Definition: _algo.h:82
equal_to< _Tp > __equal_to(_Tp *)
#define _STLP_VALUE_TYPE(_It, _Tp)

◆ adjacent_find() [2/2]

template<class _ForwardIter , class _BinaryPredicate >
_STLP_INLINE_LOOP _ForwardIter adjacent_find ( _ForwardIter  __first,
_ForwardIter  __last,
_BinaryPredicate  __binary_pred 
)

Definition at line 82 of file _algo.h.

83 {
84 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
85 if (__first == __last)
86 return __last;
87 _ForwardIter __next = __first;
88 while(++__next != __last) {
89 if (__binary_pred(*__first, *__next))
90 return __first;
91 __first = __next;
92 }
93 return __last;
94}

Referenced by adjacent_find(), AdjTest::adjfind0(), AdjTest::adjfind1(), AdjTest::adjfind2(), and unique().

◆ binary_search() [1/2]

template<class _ForwardIter , class _Tp >
bool binary_search ( _ForwardIter  __first,
_ForwardIter  __last,
const _Tp &  __val 
)
inline

Definition at line 553 of file _algo.h.

554 {
555 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
556 _ForwardIter __i = _STLP_PRIV __lower_bound(__first, __last, __val,
557 _STLP_PRIV __less2(_STLP_VALUE_TYPE(__first, _ForwardIter), (_Tp*)0),
558 _STLP_PRIV __less2((_Tp*)0, _STLP_VALUE_TYPE(__first, _ForwardIter)),
559 _STLP_DISTANCE_TYPE(__first, _ForwardIter));
560 return __i != __last && !(__val < *__i);
561}
__less_2< _T1, _T2 > __less2(_T1 *, _T2 *)
Definition: _algo.h:470
#define _STLP_DISTANCE_TYPE(_It, _Tp)

Referenced by BsearchTest::bsearch1(), and BsearchTest::bsearch2().

◆ binary_search() [2/2]

template<class _ForwardIter , class _Tp , class _Compare >
bool binary_search ( _ForwardIter  __first,
_ForwardIter  __last,
const _Tp &  __val,
_Compare  __comp 
)
inline

Definition at line 564 of file _algo.h.

566 {
567 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
568 _ForwardIter __i = _STLP_PRIV __lower_bound(__first, __last, __val, __comp, __comp,
569 _STLP_DISTANCE_TYPE(__first, _ForwardIter));
570 return __i != __last && !__comp(__val, *__i);
571}

◆ count()

template<class _InputIter , class _Tp , class _Size >
_STLP_INLINE_LOOP void count ( _InputIter  __first,
_InputIter  __last,
const _Tp &  __val,
_Size __n 
)

Definition at line 106 of file _algo.h.

106 {
107 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
108 for ( ; __first != __last; ++__first)
109 if (*__first == __val)
110 ++__n;
111}

◆ count_if()

template<class _InputIter , class _Predicate , class _Size >
_STLP_INLINE_LOOP void count_if ( _InputIter  __first,
_InputIter  __last,
_Predicate  __pred,
_Size __n 
)

Definition at line 115 of file _algo.h.

115 {
116 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
117 for ( ; __first != __last; ++__first)
118 if (__pred(*__first))
119 ++__n;
120}
_STLP_INLINE_LOOP _InputIter _Predicate __pred
Definition: _algo.h:68

Referenced by CountTest::countif1(), FuncTest::func1(), and LogicTest::logicnot().

◆ equal_range() [1/2]

template<class _ForwardIter , class _Tp >
_STLP_MOVE_TO_STD_NAMESPACE pair< _ForwardIter, _ForwardIter > equal_range ( _ForwardIter  __first,
_ForwardIter  __last,
const _Tp &  __val 
)
inline

Definition at line 535 of file _algo.h.

535 {
536 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
537 return _STLP_PRIV __equal_range(__first, __last, __val,
538 _STLP_PRIV __less2(_STLP_VALUE_TYPE(__first, _ForwardIter), (_Tp*)0),
539 _STLP_PRIV __less2((_Tp*)0, _STLP_VALUE_TYPE(__first, _ForwardIter)),
540 _STLP_DISTANCE_TYPE(__first, _ForwardIter));
541}
_STLP_MOVE_TO_PRIV_NAMESPACE pair< _ForwardIter, _ForwardIter > __equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp &__val, _Compare1 __comp1, _Compare2 __comp2, _Distance *)
Definition: _algo.c:1381

Referenced by EqualTest::equal_range0(), EqualTest::equal_range1(), EqualTest::equal_range2(), and _Rb_tree< _Key, _Compare, _Value, _KeyOfValue, _Traits, >::erase().

◆ equal_range() [2/2]

template<class _ForwardIter , class _Tp , class _Compare >
pair< _ForwardIter, _ForwardIter > equal_range ( _ForwardIter  __first,
_ForwardIter  __last,
const _Tp &  __val,
_Compare  __comp 
)
inline

Definition at line 545 of file _algo.h.

546 {
547 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
548 return _STLP_PRIV __equal_range(__first, __last, __val, __comp, __comp,
549 _STLP_DISTANCE_TYPE(__first, _ForwardIter));
550}

◆ find_end()

template<class _ForwardIter1 , class _ForwardIter2 >
_ForwardIter1 find_end ( _ForwardIter1  __first1,
_ForwardIter1  __last1,
_ForwardIter2  __first2,
_ForwardIter2  __last2 
)

Definition at line 273 of file _algo.c.

274 {
275 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
276 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
277 return _STLP_PRIV __find_end(__first1, __last1, __first2, __last2,
279 _STLP_ITERATOR_CATEGORY(__first1, _ForwardIter1),
280 _STLP_ITERATOR_CATEGORY(__first2, _ForwardIter2),
281#else
284#endif
285 _STLP_PRIV __equal_to(_STLP_VALUE_TYPE(__first1, _ForwardIter1))
286 );
287}
_ForwardIter1 __find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, _ForwardIter2 __first2, _ForwardIter2 __last2, const forward_iterator_tag &, const forward_iterator_tag &, _BinaryPredicate __comp)
Definition: _algobase.c:369
#define _STLP_ITERATOR_CATEGORY(_It, _Tp)
#define _STLP_CLASS_PARTIAL_SPECIALIZATION
Definition: features.h:120

◆ find_first_of() [1/2]

template<class _InputIter , class _ForwardIter >
_InputIter find_first_of ( _InputIter  __first1,
_InputIter  __last1,
_ForwardIter  __first2,
_ForwardIter  __last2 
)
inline

Definition at line 136 of file _algo.h.

137 {
138 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
139 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
140 return _STLP_PRIV __find_first_of(__first1, __last1, __first2, __last2);
141}
_InputIter __find_first_of(_InputIter __first1, _InputIter __last1, _ForwardIter __first2, _ForwardIter __last2)
Definition: _algobase.c:339

Referenced by AlgTest::find_first_of_nsc_test(), and AlgTest::find_first_of_test().

◆ find_first_of() [2/2]

template<class _InputIter , class _ForwardIter , class _BinaryPredicate >
_InputIter find_first_of ( _InputIter  __first1,
_InputIter  __last1,
_ForwardIter  __first2,
_ForwardIter  __last2,
_BinaryPredicate  __comp 
)
inline

Definition at line 145 of file _algo.h.

146 {
147 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
148 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
149 return _STLP_PRIV __find_first_of(__first1, __last1, __first2, __last2, __comp);
150}

◆ for()

for ( ;__first !  = __last; ++__first)

Definition at line 71 of file _algo.h.

71 {
72 if (__pred(*__first))
73 ++__n;
74 }

◆ for_each()

template<class _InputIter , class _Function >
_STLP_BEGIN_NAMESPACE _STLP_INLINE_LOOP _Function for_each ( _InputIter  __first,
_InputIter  __last,
_Function  __f 
)

Definition at line 59 of file _algo.h.

59 {
60 for ( ; __first != __last; ++__first)
61 __f(*__first);
62 return __f;
63}

Referenced by _Locale_impl::_Locale_impl(), BindTest::bind1st1(), BindTest::bind_memfn(), ForeachTest::foreach0(), ForeachTest::foreach1(), and _Locale_impl::~_Locale_impl().

◆ generate()

template<class _ForwardIter , class _Generator >
_STLP_INLINE_LOOP void generate ( _ForwardIter  __first,
_ForwardIter  __last,
_Generator  __gen 
)

Definition at line 222 of file _algo.h.

222 {
223 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
224 for ( ; __first != __last; ++__first)
225 *__first = __gen();
226}

◆ generate_n()

template<class _OutputIter , class _Size , class _Generator >
_STLP_INLINE_LOOP void generate_n ( _OutputIter  __first,
_Size  __n,
_Generator  __gen 
)

Definition at line 230 of file _algo.h.

230 {
231 for ( ; __n > 0; --__n, ++__first)
232 *__first = __gen();
233}

Referenced by GeneratorTest::genern1(), and GeneratorTest::genern2().

◆ includes() [1/2]

template<class _InputIter1 , class _InputIter2 >
bool includes ( _InputIter1  __first1,
_InputIter1  __last1,
_InputIter2  __first2,
_InputIter2  __last2 
)

Definition at line 1607 of file _algo.c.

1608 {
1609 return _STLP_PRIV __includes(__first1, __last1, __first2, __last2,
1610 _STLP_PRIV __less(_STLP_VALUE_TYPE(__first1, _InputIter1)));
1611}
_STLP_MOVE_TO_PRIV_NAMESPACE bool __includes(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _Compare __comp)
Definition: _algo.c:1581
_STLP_MOVE_TO_PRIV_NAMESPACE less< _Tp > __less(_Tp *)

◆ includes() [2/2]

template<class _InputIter1 , class _InputIter2 , class _Compare >
bool includes ( _InputIter1  __first1,
_InputIter1  __last1,
_InputIter2  __first2,
_InputIter2  __last2,
_Compare  __comp 
)

Definition at line 1601 of file _algo.c.

1602 {
1603 return _STLP_PRIV __includes(__first1, __last1, __first2, __last2, __comp);
1604}

◆ inplace_merge() [1/2]

template<class _BidirectionalIter >
void inplace_merge ( _BidirectionalIter  __first,
_BidirectionalIter  __middle,
_BidirectionalIter  __last 
)

Definition at line 1553 of file _algo.c.

1555 {
1556 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __middle))
1557 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__middle, __last))
1558 if (__first == __middle || __middle == __last)
1559 return;
1560 _STLP_PRIV __inplace_merge_aux(__first, __middle, __last,
1561 _STLP_VALUE_TYPE(__first, _BidirectionalIter), _STLP_DISTANCE_TYPE(__first, _BidirectionalIter),
1562 _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _BidirectionalIter)));
1563}
void __inplace_merge_aux(_BidirectionalIter __first, _BidirectionalIter __middle, _BidirectionalIter __last, _Tp *, _Distance *, _Compare __comp)
Definition: _algo.c:1534

Referenced by InplaceTest::inplmrg1(), and InplaceTest::inplmrg2().

◆ inplace_merge() [2/2]

template<class _BidirectionalIter , class _Compare >
void inplace_merge ( _BidirectionalIter  __first,
_BidirectionalIter  __middle,
_BidirectionalIter  __last,
_Compare  __comp 
)

Definition at line 1566 of file _algo.c.

1568 {
1569 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __middle))
1570 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__middle, __last))
1571 if (__first == __middle || __middle == __last)
1572 return;
1573 _STLP_PRIV __inplace_merge_aux(__first, __middle, __last,
1574 _STLP_VALUE_TYPE(__first, _BidirectionalIter), _STLP_DISTANCE_TYPE(__first, _BidirectionalIter),
1575 __comp);
1576}

◆ is_heap() [1/2]

template<class _RandomAccessIter >
bool is_heap ( _RandomAccessIter  __first,
_RandomAccessIter  __last 
)

Definition at line 1985 of file _algo.c.

1985 {
1986 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
1987 return _STLP_PRIV __is_heap(__first, _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _RandomAccessIter)), __last - __first);
1988}
_STLP_MOVE_TO_PRIV_NAMESPACE bool __is_heap(_RandomAccessIter __first, _StrictWeakOrdering __comp, _Distance __n)
Definition: _algo.c:1968

◆ is_heap() [2/2]

template<class _RandomAccessIter , class _StrictWeakOrdering >
bool is_heap ( _RandomAccessIter  __first,
_RandomAccessIter  __last,
_StrictWeakOrdering  __comp 
)

Definition at line 1991 of file _algo.c.

1992 {
1993 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
1994 return _STLP_PRIV __is_heap(__first, __comp, __last - __first);
1995}

◆ is_sorted() [1/2]

template<class _ForwardIter >
_STLP_MOVE_TO_STD_NAMESPACE bool is_sorted ( _ForwardIter  __first,
_ForwardIter  __last 
)
inline

Definition at line 722 of file _algo.h.

722 {
723 return _STLP_PRIV __is_sorted(__first, __last,
724 _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _ForwardIter)));
725}
_STLP_MOVE_TO_PRIV_NAMESPACE bool __is_sorted(_ForwardIter __first, _ForwardIter __last, _StrictWeakOrdering __comp)
Definition: _algo.c:2001

Referenced by LISTVIEW_InsertItemT(), and slist< _Tp, >::merge().

◆ is_sorted() [2/2]

template<class _ForwardIter , class _StrictWeakOrdering >
bool is_sorted ( _ForwardIter  __first,
_ForwardIter  __last,
_StrictWeakOrdering  __comp 
)
inline

Definition at line 728 of file _algo.h.

729 {
730 return _STLP_PRIV __is_sorted(__first, __last, __comp);
731}

◆ lower_bound() [1/2]

template<class _ForwardIter , class _Tp >
_STLP_MOVE_TO_STD_NAMESPACE _ForwardIter lower_bound ( _ForwardIter  __first,
_ForwardIter  __last,
const _Tp &  __val 
)
inline

Definition at line 481 of file _algo.h.

482 {
483 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
484 return _STLP_PRIV __lower_bound(__first, __last, __val,
485 _STLP_PRIV __less2(_STLP_VALUE_TYPE(__first, _ForwardIter), (_Tp*)0),
486 _STLP_PRIV __less2((_Tp*)0, _STLP_VALUE_TYPE(__first, _ForwardIter)),
487 _STLP_DISTANCE_TYPE(__first, _ForwardIter));
488}

Referenced by EqualTest::equal_range2(), BoundTest::lwrbnd1(), and BoundTest::lwrbnd2().

◆ lower_bound() [2/2]

template<class _ForwardIter , class _Tp , class _Compare >
_ForwardIter lower_bound ( _ForwardIter  __first,
_ForwardIter  __last,
const _Tp &  __val,
_Compare  __comp 
)
inline

Definition at line 491 of file _algo.h.

492 {
493 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
494 return _STLP_PRIV __lower_bound(__first, __last, __val, __comp, __comp,
495 _STLP_DISTANCE_TYPE(__first, _ForwardIter));
496}

◆ max_element() [1/2]

template<class _ForwardIter >
_ForwardIter max_element ( _ForwardIter  __first,
_ForwardIter  __last 
)

Definition at line 1800 of file _algo.c.

1800 {
1801 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
1802 if (__first == __last) return __first;
1803 _ForwardIter __result = __first;
1804 while (++__first != __last)
1805 if (*__result < *__first) {
1806 _STLP_VERBOSE_ASSERT(!(*__first < *__result), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
1807 __result = __first;
1808 }
1809 return __result;
1810}

Referenced by valarray< _Tp >::max(), MaxTest::maxelem1(), and MaxTest::maxelem2().

◆ max_element() [2/2]

template<class _ForwardIter , class _Compare >
_ForwardIter max_element ( _ForwardIter  __first,
_ForwardIter  __last,
_Compare  __comp 
)

Definition at line 1813 of file _algo.c.

1814 {
1815 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
1816 if (__first == __last) return __first;
1817 _ForwardIter __result = __first;
1818 while (++__first != __last) {
1819 if (__comp(*__result, *__first)) {
1820 _STLP_VERBOSE_ASSERT(!__comp(*__first, *__result), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
1821 __result = __first;
1822 }
1823 }
1824 return __result;
1825}

◆ merge() [1/2]

template<class _InputIter1 , class _InputIter2 , class _OutputIter >
_OutputIter merge ( _InputIter1  __first1,
_InputIter1  __last1,
_InputIter2  __first2,
_InputIter2  __last2,
_OutputIter  __result 
)

Definition at line 1419 of file _algo.c.

1421 {
1422 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
1423 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
1424 while (__first1 != __last1 && __first2 != __last2) {
1425 if (*__first2 < *__first1) {
1426 *__result = *__first2;
1427 ++__first2;
1428 }
1429 else {
1430 *__result = *__first1;
1431 ++__first1;
1432 }
1433 ++__result;
1434 }
1435 return _STLP_STD::copy(__first2, __last2, _STLP_STD::copy(__first1, __last1, __result));
1436}

Referenced by __merge_sort_loop(), create_diff_row_query(), ext4_ext_insert_extent(), gather_merge_data(), MergeTest::merge0(), MergeTest::merge1(), MergeTest::merge2(), MergeChmProperties(), MsiDatabaseMergeW(), nsChannel_SetResponseHeader(), parse_obj_node_param(), and test_IImageList_Merge().

◆ merge() [2/2]

template<class _InputIter1 , class _InputIter2 , class _OutputIter , class _Compare >
_OutputIter merge ( _InputIter1  __first1,
_InputIter1  __last1,
_InputIter2  __first2,
_InputIter2  __last2,
_OutputIter  __result,
_Compare  __comp 
)

Definition at line 1440 of file _algo.c.

1442 {
1443 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
1444 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
1445 while (__first1 != __last1 && __first2 != __last2) {
1446 if (__comp(*__first2, *__first1)) {
1447 _STLP_VERBOSE_ASSERT(!__comp(*__first1, *__first2), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
1448 *__result = *__first2;
1449 ++__first2;
1450 }
1451 else {
1452 *__result = *__first1;
1453 ++__first1;
1454 }
1455 ++__result;
1456 }
1457 return _STLP_STD::copy(__first2, __last2, _STLP_STD::copy(__first1, __last1, __result));
1458}

◆ min_element() [1/2]

template<class _ForwardIter >
_ForwardIter min_element ( _ForwardIter  __first,
_ForwardIter  __last 
)

Definition at line 1828 of file _algo.c.

1828 {
1829 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
1830 if (__first == __last) return __first;
1831 _ForwardIter __result = __first;
1832 while (++__first != __last)
1833 if (*__first < *__result) {
1834 _STLP_VERBOSE_ASSERT(!(*__result < *__first), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
1835 __result = __first;
1836 }
1837 return __result;
1838}

Referenced by valarray< _Tp >::min(), MinTest::minelem1(), and MinTest::minelem2().

◆ min_element() [2/2]

template<class _ForwardIter , class _Compare >
_ForwardIter min_element ( _ForwardIter  __first,
_ForwardIter  __last,
_Compare  __comp 
)

Definition at line 1841 of file _algo.c.

1842 {
1843 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
1844 if (__first == __last) return __first;
1845 _ForwardIter __result = __first;
1846 while (++__first != __last) {
1847 if (__comp(*__first, *__result)) {
1848 _STLP_VERBOSE_ASSERT(!__comp(*__result, *__first), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
1849 __result = __first;
1850 }
1851 }
1852 return __result;
1853}

◆ next_permutation() [1/2]

template<class _BidirectionalIter >
bool next_permutation ( _BidirectionalIter  __first,
_BidirectionalIter  __last 
)

Definition at line 1896 of file _algo.c.

1896 {
1897 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
1898 return _STLP_PRIV __next_permutation(__first, __last,
1899 _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _BidirectionalIter)));
1900}
_STLP_MOVE_TO_PRIV_NAMESPACE bool __next_permutation(_BidirectionalIter __first, _BidirectionalIter __last, _Compare __comp)
Definition: _algo.c:1860

Referenced by PermTest::nextprm0(), PermTest::nextprm1(), and PermTest::nextprm2().

◆ next_permutation() [2/2]

template<class _BidirectionalIter , class _Compare >
bool next_permutation ( _BidirectionalIter  __first,
_BidirectionalIter  __last,
_Compare  __comp 
)

Definition at line 1903 of file _algo.c.

1904 {
1905 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
1906 return _STLP_PRIV __next_permutation(__first, __last, __comp);
1907}

◆ nth_element() [1/2]

template<class _RandomAccessIter >
void nth_element ( _RandomAccessIter  __first,
_RandomAccessIter  __nth,
_RandomAccessIter  __last 
)

Definition at line 1335 of file _algo.c.

1336 {
1337 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __nth))
1338 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__nth, __last))
1339 _STLP_PRIV __nth_element(__first, __nth, __last, _STLP_VALUE_TYPE(__first, _RandomAccessIter),
1340 _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _RandomAccessIter)));
1341}
_STLP_MOVE_TO_PRIV_NAMESPACE void __nth_element(_RandomAccessIter __first, _RandomAccessIter __nth, _RandomAccessIter __last, _Tp *, _Compare __comp)
Definition: _algo.c:1314

Referenced by NthElemTest::nthelem0(), NthElemTest::nthelem1(), and NthElemTest::nthelem2().

◆ nth_element() [2/2]

template<class _RandomAccessIter , class _Compare >
void nth_element ( _RandomAccessIter  __first,
_RandomAccessIter  __nth,
_RandomAccessIter  __last,
_Compare  __comp 
)

Definition at line 1344 of file _algo.c.

1345 {
1346 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __nth))
1347 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__nth, __last))
1348 _STLP_PRIV __nth_element(__first, __nth, __last, _STLP_VALUE_TYPE(__first, _RandomAccessIter), __comp);
1349}

◆ partial_sort() [1/2]

template<class _RandomAccessIter >
void partial_sort ( _RandomAccessIter  __first,
_RandomAccessIter  __middle,
_RandomAccessIter  __last 
)

Definition at line 1236 of file _algo.c.

1237 {
1238 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __middle))
1239 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__middle, __last))
1240 _STLP_PRIV __partial_sort(__first, __middle, __last, _STLP_VALUE_TYPE(__first, _RandomAccessIter),
1241 _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _RandomAccessIter)));
1242}
_STLP_MOVE_TO_PRIV_NAMESPACE void __partial_sort(_RandomAccessIter __first, _RandomAccessIter __middle, _RandomAccessIter __last, _Tp *, _Compare __comp)
Definition: _algo.c:1220

Referenced by __introsort_loop(), PartialTest::parsrt0(), PartialTest::parsrt1(), and PartialTest::parsrt2().

◆ partial_sort() [2/2]

template<class _RandomAccessIter , class _Compare >
void partial_sort ( _RandomAccessIter  __first,
_RandomAccessIter  __middle,
_RandomAccessIter  __last,
_Compare  __comp 
)

Definition at line 1245 of file _algo.c.

1246 {
1247 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __middle))
1248 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__middle, __last))
1249 _STLP_PRIV __partial_sort(__first, __middle, __last, _STLP_VALUE_TYPE(__first, _RandomAccessIter), __comp);
1250}

◆ partial_sort_copy() [1/2]

template<class _InputIter , class _RandomAccessIter >
_RandomAccessIter partial_sort_copy ( _InputIter  __first,
_InputIter  __last,
_RandomAccessIter  __result_first,
_RandomAccessIter  __result_last 
)

Definition at line 1287 of file _algo.c.

1288 {
1289 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
1290 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__result_first, __result_last))
1291 return _STLP_PRIV __partial_sort_copy(__first, __last, __result_first, __result_last,
1292 _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _InputIter)),
1293 _STLP_DISTANCE_TYPE(__result_first, _RandomAccessIter),
1294 _STLP_VALUE_TYPE(__first, _InputIter));
1295}
_STLP_MOVE_TO_PRIV_NAMESPACE _RandomAccessIter __partial_sort_copy(_InputIter __first, _InputIter __last, _RandomAccessIter __result_first, _RandomAccessIter __result_last, _Compare __comp, _Distance *, _Tp *)
Definition: _algo.c:1256

Referenced by PartialTest::parsrtc0(), PartialTest::parsrtc1(), and PartialTest::parsrtc2().

◆ partial_sort_copy() [2/2]

template<class _InputIter , class _RandomAccessIter , class _Compare >
_RandomAccessIter partial_sort_copy ( _InputIter  __first,
_InputIter  __last,
_RandomAccessIter  __result_first,
_RandomAccessIter  __result_last,
_Compare  __comp 
)

Definition at line 1299 of file _algo.c.

1301 {
1302 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
1303 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__result_first, __result_last))
1304 return _STLP_PRIV __partial_sort_copy(__first, __last, __result_first, __result_last,
1305 __comp,
1306 _STLP_DISTANCE_TYPE(__result_first, _RandomAccessIter),
1307 _STLP_VALUE_TYPE(__first, _InputIter));
1308}

◆ partition()

template<class _ForwardIter , class _Predicate >
_ForwardIter partition ( _ForwardIter  __first,
_ForwardIter  __last,
_Predicate  __pred 
)

Definition at line 738 of file _algo.c.

738 {
739 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
740 return _STLP_PRIV __partition(__first, __last, __pred, _STLP_ITERATOR_CATEGORY(__first, _ForwardIter));
741}
_STLP_MOVE_TO_PRIV_NAMESPACE _STLP_INLINE_LOOP _ForwardIter __partition(_ForwardIter __first, _ForwardIter __last, _Predicate __pred, const forward_iterator_tag &)
Definition: _algo.c:676

◆ prev_permutation() [1/2]

template<class _BidirectionalIter >
bool prev_permutation ( _BidirectionalIter  __first,
_BidirectionalIter  __last 
)

Definition at line 1947 of file _algo.c.

1947 {
1948 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
1949 return _STLP_PRIV __prev_permutation(__first, __last,
1950 _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _BidirectionalIter)));
1951}
_STLP_MOVE_TO_PRIV_NAMESPACE bool __prev_permutation(_BidirectionalIter __first, _BidirectionalIter __last, _Compare __comp)
Definition: _algo.c:1912

Referenced by PermTest::prevprm0(), PermTest::prevprm1(), and PermTest::prevprm2().

◆ prev_permutation() [2/2]

template<class _BidirectionalIter , class _Compare >
bool prev_permutation ( _BidirectionalIter  __first,
_BidirectionalIter  __last,
_Compare  __comp 
)

Definition at line 1954 of file _algo.c.

1955 {
1956 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
1957 return _STLP_PRIV __prev_permutation(__first, __last, __comp);
1958}

◆ random_sample() [1/2]

template<class _InputIter , class _RandomAccessIter >
_RandomAccessIter random_sample ( _InputIter  __first,
_InputIter  __last,
_RandomAccessIter  __out_first,
_RandomAccessIter  __out_last 
)

Definition at line 650 of file _algo.c.

651 {
652 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
653 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__out_first, __out_last))
654 return _STLP_PRIV __random_sample(__first, __last,
655 __out_first, __out_last - __out_first);
656}
_STLP_MOVE_TO_PRIV_NAMESPACE _RandomAccessIter __random_sample(_InputIter __first, _InputIter __last, _RandomAccessIter __out_ite, const _Distance __n)
Definition: _algo.c:605

◆ random_sample() [2/2]

template<class _InputIter , class _RandomAccessIter , class _RandomNumberGenerator >
_RandomAccessIter random_sample ( _InputIter  __first,
_InputIter  __last,
_RandomAccessIter  __out_first,
_RandomAccessIter  __out_last,
_RandomNumberGenerator &  __rand 
)

Definition at line 660 of file _algo.c.

662 {
663 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
664 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__out_first, __out_last))
665 return _STLP_PRIV __random_sample(__first, __last,
666 __out_first, __rand,
667 __out_last - __out_first);
668}

◆ random_sample_n() [1/2]

template<class _ForwardIter , class _OutputIter , class _Distance >
_OutputIter random_sample_n ( _ForwardIter  __first,
_ForwardIter  __last,
_OutputIter  __out_ite,
const _Distance  __n 
)

Definition at line 560 of file _algo.c.

561 {
562 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
563 _Distance __remaining = _STLP_STD::distance(__first, __last);
564 _Distance __m = (min) (__n, __remaining);
565
566 while (__m > 0) {
567 if (_STLP_PRIV __random_number(__remaining) < __m) {
568 *__out_ite = *__first;
569 ++__out_ite;
570 --__m;
571 }
572
573 --__remaining;
574 ++__first;
575 }
576 return __out_ite;
577}
_STLP_MOVE_TO_PRIV_NAMESPACE _Distance __random_number(_Distance __n)
Definition: _algo.c:529
#define min(a, b)
Definition: monoChain.cc:55

◆ random_sample_n() [2/2]

template<class _ForwardIter , class _OutputIter , class _Distance , class _RandomNumberGenerator >
_OutputIter random_sample_n ( _ForwardIter  __first,
_ForwardIter  __last,
_OutputIter  __out_ite,
const _Distance  __n,
_RandomNumberGenerator &  __rand 
)

Definition at line 582 of file _algo.c.

584 {
585 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
586 _Distance __remaining = _STLP_STD::distance(__first, __last);
587 _Distance __m = (min) (__n, __remaining);
588
589 while (__m > 0) {
590 if (__rand(__remaining) < __m) {
591 *__out_ite = *__first;
592 ++__out_ite;
593 --__m;
594 }
595
596 --__remaining;
597 ++__first;
598 }
599 return __out_ite;
600}

◆ random_shuffle() [1/2]

template<class _RandomAccessIter >
void random_shuffle ( _RandomAccessIter  __first,
_RandomAccessIter  __last 
)

Definition at line 540 of file _algo.c.

541 {
542 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
543 if (__first == __last) return;
544 for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i)
545 iter_swap(__i, __first + _STLP_PRIV __random_number((__i - __first) + 1));
546}
_STLP_MOVE_TO_STD_NAMESPACE void iter_swap(_ForwardIter1 __i1, _ForwardIter2 __i2)
Definition: _algobase.h:120

Referenced by RndShuffleTest::rndshuf0(), and RndShuffleTest::rndshuf2().

◆ random_shuffle() [2/2]

template<class _RandomAccessIter , class _RandomNumberGenerator >
void random_shuffle ( _RandomAccessIter  __first,
_RandomAccessIter  __last,
_RandomNumberGenerator &  __rand 
)

Definition at line 549 of file _algo.c.

550 {
551 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
552 if (__first == __last) return;
553 for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i)
554 iter_swap(__i, __first + __rand((__i - __first) + 1));
555}

◆ remove()

template<class _ForwardIter , class _Tp >
_STLP_INLINE_LOOP _ForwardIter remove ( _ForwardIter  __first,
_ForwardIter  __last,
const _Tp &  __val 
)

Definition at line 265 of file _algo.h.

265 {
266 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
267 __first = find(__first, __last, __val);
268 if (__first == __last)
269 return __first;
270 else {
271 _ForwardIter __next = __first;
272 return remove_copy(++__next, __last, __first, __val);
273 }
274}
_STLP_INLINE_LOOP _OutputIter remove_copy(_InputIter __first, _InputIter __last, _OutputIter __result, const _Tp &__val)
Definition: _algo.h:239
static TAGID TAGID find
Definition: db.cpp:155

◆ remove_copy()

template<class _InputIter , class _OutputIter , class _Tp >
_STLP_INLINE_LOOP _OutputIter remove_copy ( _InputIter  __first,
_InputIter  __last,
_OutputIter  __result,
const _Tp &  __val 
)

Definition at line 239 of file _algo.h.

239 {
240 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
241 for ( ; __first != __last; ++__first) {
242 if (!(*__first == __val)) {
243 *__result = *__first;
244 ++__result;
245 }
246 }
247 return __result;
248}

Referenced by RmCpTest::remcopy1(), and remove().

◆ remove_copy_if()

template<class _InputIter , class _OutputIter , class _Predicate >
_STLP_INLINE_LOOP _OutputIter remove_copy_if ( _InputIter  __first,
_InputIter  __last,
_OutputIter  __result,
_Predicate  __pred 
)

Definition at line 252 of file _algo.h.

252 {
253 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
254 for ( ; __first != __last; ++__first) {
255 if (!__pred(*__first)) {
256 *__result = *__first;
257 ++__result;
258 }
259 }
260 return __result;
261}

Referenced by RmCpTest::remcpif1(), and remove_if().

◆ remove_if()

template<class _ForwardIter , class _Predicate >
_STLP_INLINE_LOOP _ForwardIter remove_if ( _ForwardIter  __first,
_ForwardIter  __last,
_Predicate  __pred 
)

Definition at line 278 of file _algo.h.

278 {
279 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
280 __first = find_if(__first, __last, __pred);
281 if ( __first == __last )
282 return __first;
283 else {
284 _ForwardIter __next = __first;
285 return remove_copy_if(++__next, __last, __first, __pred);
286 }
287}
_STLP_INLINE_LOOP _OutputIter remove_copy_if(_InputIter __first, _InputIter __last, _OutputIter __result, _Predicate __pred)
Definition: _algo.h:252
_STLP_MOVE_TO_STD_NAMESPACE _InputIter find_if(_InputIter __first, _InputIter __last, _Predicate __pred)
Definition: _algobase.c:214

Referenced by BindTest::bind1st1(), and RmCpTest::remif1().

◆ replace_copy()

template<class _InputIter , class _OutputIter , class _Tp >
_STLP_INLINE_LOOP _OutputIter replace_copy ( _InputIter  __first,
_InputIter  __last,
_OutputIter  __result,
const _Tp &  __old_value,
const _Tp &  __new_value 
)

Definition at line 199 of file _algo.h.

200 {
201 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
202 for ( ; __first != __last; ++__first, ++__result)
203 *__result = *__first == __old_value ? __new_value : *__first;
204 return __result;
205}

Referenced by RmCpTest::replcpy1().

◆ replace_copy_if()

template<class _Iterator , class _OutputIter , class _Predicate , class _Tp >
_STLP_INLINE_LOOP _OutputIter replace_copy_if ( _Iterator  __first,
_Iterator  __last,
_OutputIter  __result,
_Predicate  __pred,
const _Tp &  __new_value 
)

Definition at line 209 of file _algo.h.

211 {
212 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
213 for ( ; __first != __last; ++__first, ++__result)
214 *__result = __pred(*__first) ? __new_value : *__first;
215 return __result;
216}

Referenced by RmCpTest::repcpif1().

◆ replace_if()

template<class _ForwardIter , class _Predicate , class _Tp >
_STLP_INLINE_LOOP void replace_if ( _ForwardIter  __first,
_ForwardIter  __last,
_Predicate  __pred,
const _Tp &  __new_value 
)

Definition at line 190 of file _algo.h.

190 {
191 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
192 for ( ; __first != __last; ++__first)
193 if (__pred(*__first))
194 *__first = __new_value;
195}

Referenced by BindTest::bind2nd1(), BindTest::bind2nd2(), and RmCpTest::replif1().

◆ reverse()

template<class _BidirectionalIter >
_STLP_MOVE_TO_STD_NAMESPACE void reverse ( _BidirectionalIter  __first,
_BidirectionalIter  __last 
)
inline

Definition at line 332 of file _algo.h.

332 {
333 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
334 _STLP_PRIV __reverse(__first, __last, _STLP_ITERATOR_CATEGORY(__first, _BidirectionalIter));
335}
_STLP_MOVE_TO_PRIV_NAMESPACE _STLP_INLINE_LOOP void __reverse(_BidirectionalIter __first, _BidirectionalIter __last, const bidirectional_iterator_tag &)
Definition: _algo.h:316

◆ reverse_copy()

template<class _BidirectionalIter , class _OutputIter >
_STLP_INLINE_LOOP _OutputIter reverse_copy ( _BidirectionalIter  __first,
_BidirectionalIter  __last,
_OutputIter  __result 
)

Definition at line 339 of file _algo.h.

341 {
342 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
343 while (__first != __last) {
344 --__last;
345 *__result = *__last;
346 ++__result;
347 }
348 return __result;
349}

Referenced by RmCpTest::revcopy1().

◆ rotate()

template<class _ForwardIter >
void rotate ( _ForwardIter  __first,
_ForwardIter  __middle,
_ForwardIter  __last 
)

Definition at line 519 of file _algo.c.

519 {
520 _STLP_PRIV __rotate(__first, __middle, __last);
521}
_ForwardIter __rotate(_ForwardIter __first, _ForwardIter __middle, _ForwardIter __last)
Definition: _algo.c:508

Referenced by ft_stroke_border_arcto(), ft_stroker_arcto(), ft_stroker_cap(), FT_Stroker_ConicTo(), FT_Stroker_CubicTo(), ft_stroker_inside(), ft_stroker_outside(), GdipRotateMatrix(), RotateTest::rotate0(), RotateTest::rotate1(), and test_rotate().

◆ rotate_copy()

template<class _ForwardIter , class _OutputIter >
_OutputIter rotate_copy ( _ForwardIter  __first,
_ForwardIter  __middle,
_ForwardIter  __last,
_OutputIter  __result 
)
inline

Definition at line 355 of file _algo.h.

356 {
357 return _STLP_STD::copy(__first, __middle, copy(__middle, __last, __result));
358}
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
Definition: copy.c:51

Referenced by RotateTest::rotcopy0(), and RotateTest::rotcopy1().

◆ search()

template<class _ForwardIter1 , class _ForwardIter2 >
_ForwardIter1 search ( _ForwardIter1  __first1,
_ForwardIter1  __last1,
_ForwardIter2  __first2,
_ForwardIter2  __last2 
)

Definition at line 112 of file _algo.c.

113 {
114 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
115 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
116 // Test for empty ranges
117 if (__first1 == __last1 || __first2 == __last2)
118 return __first1;
119
120 // Test for a pattern of length 1.
121 _ForwardIter2 __p1(__first2);
122
123 if ( ++__p1 == __last2 )
124 return find(__first1, __last1, *__first2);
125
126 // General case.
127
128 for ( ; ; ) { // __first1 != __last1 will be checked in find below
129 __first1 = find(__first1, __last1, *__first2);
130 if (__first1 == __last1)
131 return __last1;
132
133 _ForwardIter2 __p = __p1;
134 _ForwardIter1 __current = __first1;
135 if (++__current == __last1)
136 return __last1;
137
138 while (*__current == *__p) {
139 if (++__p == __last2)
140 return __first1;
141 if (++__current == __last1)
142 return __last1;
143 }
144
145 ++__first1;
146 }
147 return __first1;
148}

◆ search_n() [1/2]

template<class _ForwardIter , class _Integer , class _Tp >
_ForwardIter search_n ( _ForwardIter  __first,
_ForwardIter  __last,
_Integer  __count,
const _Tp &  __val 
)

Definition at line 246 of file _algo.c.

247 {
248 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
249 if (__count <= 0)
250 return __first;
251 if (__count == 1)
252 //We use find when __count == 1 to use potential find overload.
253 return find(__first, __last, __val);
254 return _STLP_PRIV __search_n(__first, __last, __count, __val, equal_to<_Tp>(),
255 _STLP_DISTANCE_TYPE(__first, _ForwardIter),
256 _STLP_ITERATOR_CATEGORY(__first, _ForwardIter));
257}
_STLP_MOVE_TO_PRIV_NAMESPACE _RandomAccessIter __search_n(_RandomAccessIter __first, _RandomAccessIter __last, _Integer __count, const _Tp &__val, _BinaryPred __pred, _Distance *, const random_access_iterator_tag &)
Definition: _algo.c:154

Referenced by AlgTest::search_n_test().

◆ search_n() [2/2]

template<class _ForwardIter , class _Integer , class _Tp , class _BinaryPred >
_ForwardIter search_n ( _ForwardIter  __first,
_ForwardIter  __last,
_Integer  __count,
const _Tp &  __val,
_BinaryPred  __binary_pred 
)

Definition at line 260 of file _algo.c.

262 {
263 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
264 if (__count <= 0)
265 return __first;
266 return _STLP_PRIV __search_n(__first, __last, __count, __val, __binary_pred,
267 _STLP_DISTANCE_TYPE(__first, _ForwardIter),
268 _STLP_ITERATOR_CATEGORY(__first, _ForwardIter));
269}

◆ set_difference() [1/2]

template<class _InputIter1 , class _InputIter2 , class _OutputIter >
_OutputIter set_difference ( _InputIter1  __first1,
_InputIter1  __last1,
_InputIter2  __first2,
_InputIter2  __last2,
_OutputIter  __result 
)

Definition at line 1732 of file _algo.c.

1734 {
1735 return _STLP_PRIV __set_difference(__first1, __last1, __first2, __last2, __result,
1736 _STLP_PRIV __less(_STLP_VALUE_TYPE(__first1, _InputIter1)));
1737}
_STLP_MOVE_TO_PRIV_NAMESPACE _OutputIter __set_difference(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result, _Compare __comp)
Definition: _algo.c:1708

Referenced by SetDifferenceTest::setdiff0(), SetDifferenceTest::setdiff1(), and SetDifferenceTest::setdiff2().

◆ set_difference() [2/2]

template<class _InputIter1 , class _InputIter2 , class _OutputIter , class _Compare >
_OutputIter set_difference ( _InputIter1  __first1,
_InputIter1  __last1,
_InputIter2  __first2,
_InputIter2  __last2,
_OutputIter  __result,
_Compare  __comp 
)

Definition at line 1741 of file _algo.c.

1743 {
1744 return _STLP_PRIV __set_difference(__first1, __last1, __first2, __last2, __result, __comp);
1745}

◆ set_intersection() [1/2]

template<class _InputIter1 , class _InputIter2 , class _OutputIter >
_OutputIter set_intersection ( _InputIter1  __first1,
_InputIter1  __last1,
_InputIter2  __first2,
_InputIter2  __last2,
_OutputIter  __result 
)

Definition at line 1689 of file _algo.c.

1691 {
1692 return _STLP_PRIV __set_intersection(__first1, __last1, __first2, __last2, __result,
1693 _STLP_PRIV __less(_STLP_VALUE_TYPE(__first1, _InputIter1)));
1694}
_STLP_MOVE_TO_PRIV_NAMESPACE _OutputIter __set_intersection(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result, _Compare __comp)
Definition: _algo.c:1665

Referenced by SetIntersectionTest::setintr0(), SetIntersectionTest::setintr1(), and SetIntersectionTest::setintr2().

◆ set_intersection() [2/2]

template<class _InputIter1 , class _InputIter2 , class _OutputIter , class _Compare >
_OutputIter set_intersection ( _InputIter1  __first1,
_InputIter1  __last1,
_InputIter2  __first2,
_InputIter2  __last2,
_OutputIter  __result,
_Compare  __comp 
)

Definition at line 1698 of file _algo.c.

1700 {
1701 return _STLP_PRIV __set_intersection(__first1, __last1, __first2, __last2, __result, __comp);
1702}

◆ set_symmetric_difference() [1/2]

template<class _InputIter1 , class _InputIter2 , class _OutputIter >
_OutputIter set_symmetric_difference ( _InputIter1  __first1,
_InputIter1  __last1,
_InputIter2  __first2,
_InputIter2  __last2,
_OutputIter  __result 
)

Definition at line 1780 of file _algo.c.

1782 {
1783 return _STLP_PRIV __set_symmetric_difference(__first1, __last1, __first2, __last2, __result,
1784 _STLP_PRIV __less(_STLP_VALUE_TYPE(__first1, _InputIter1)));
1785}
_STLP_MOVE_TO_PRIV_NAMESPACE _OutputIter __set_symmetric_difference(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result, _Compare __comp)
Definition: _algo.c:1751

Referenced by SetDifferenceTest::setsymd0(), SetDifferenceTest::setsymd1(), and SetDifferenceTest::setsymd2().

◆ set_symmetric_difference() [2/2]

template<class _InputIter1 , class _InputIter2 , class _OutputIter , class _Compare >
_OutputIter set_symmetric_difference ( _InputIter1  __first1,
_InputIter1  __last1,
_InputIter2  __first2,
_InputIter2  __last2,
_OutputIter  __result,
_Compare  __comp 
)

Definition at line 1789 of file _algo.c.

1792 {
1793 return _STLP_PRIV __set_symmetric_difference(__first1, __last1, __first2, __last2, __result, __comp);
1794}

◆ set_union() [1/2]

template<class _InputIter1 , class _InputIter2 , class _OutputIter >
_OutputIter set_union ( _InputIter1  __first1,
_InputIter1  __last1,
_InputIter2  __first2,
_InputIter2  __last2,
_OutputIter  __result 
)

Definition at line 1646 of file _algo.c.

1648 {
1649 return _STLP_PRIV __set_union(__first1, __last1, __first2, __last2, __result,
1650 _STLP_PRIV __less(_STLP_VALUE_TYPE(__first1, _InputIter1)));
1651}
_STLP_MOVE_TO_PRIV_NAMESPACE _OutputIter __set_union(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _OutputIter __result, _Compare __comp)
Definition: _algo.c:1617

Referenced by SetUnionTest::setunon0(), SetUnionTest::setunon1(), and SetUnionTest::setunon2().

◆ set_union() [2/2]

template<class _InputIter1 , class _InputIter2 , class _OutputIter , class _Compare >
_OutputIter set_union ( _InputIter1  __first1,
_InputIter1  __last1,
_InputIter2  __first2,
_InputIter2  __last2,
_OutputIter  __result,
_Compare  __comp 
)

Definition at line 1655 of file _algo.c.

1657 {
1658 return _STLP_PRIV __set_union(__first1, __last1, __first2, __last2, __result, __comp);
1659}

◆ sort() [1/2]

template<class _RandomAccessIter >
_STLP_MOVE_TO_STD_NAMESPACE void sort ( _RandomAccessIter  __first,
_RandomAccessIter  __last 
)

Definition at line 993 of file _algo.c.

993 {
994 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
995 if (__first != __last) {
997 _STLP_VALUE_TYPE(__first, _RandomAccessIter),
998 _STLP_PRIV __lg(__last - __first) * 2,
999 _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _RandomAccessIter)));
1001 _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _RandomAccessIter)));
1002 }
1003}
void __final_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last, _Compare __comp)
Definition: _algo.c:959
void __introsort_loop(_RandomAccessIter __first, _RandomAccessIter __last, _Tp *, _Size __depth_limit, _Compare __comp)
Definition: _algo.c:970
_STLP_MOVE_TO_PRIV_NAMESPACE _Size __lg(_Size __n)
Definition: _algo.h:409

Referenced by _Function_class_(), BnegateTest::bnegate1(), BnegateTest::bnegate2(), LocaleTest::collate_by_name(), LocaleTest::collate_facet(), FindProgramDlg::CompareFunc(), FuncTest::func2(), FuncTest::func3(), CDefView::GetArrangeParam(), GreaterTest::greatereq(), GreaterTest::greatert(), IncludesTest::incl2(), LessTest::lesseqt(), LessTest::lesst(), ListView_SortEx(), BtrfsDeviceAdd::populate_device_tree(), psh_hint_table_activate_mask(), psh_hint_table_find_strong_points(), CDefView::Rearrange(), should_balance_chunk(), SortTest::sort1(), SortTest::sort2(), SortTest::sort3(), AlgTest::sort_test(), test_GetDefaultColumn(), test_ldap_parse_sort_control(), UnorderedTest::umap(), UnorderedTest::umultimap(), UnorderedTest::umultiset(), UnorderedTest::uset(), xsltComputeSortResult(), and xsltComputeSortResultInternal().

◆ sort() [2/2]

template<class _RandomAccessIter , class _Compare >
void sort ( _RandomAccessIter  __first,
_RandomAccessIter  __last,
_Compare  __comp 
)

Definition at line 1006 of file _algo.c.

1006 {
1007 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
1008 if (__first != __last) {
1010 _STLP_VALUE_TYPE(__first, _RandomAccessIter),
1011 _STLP_PRIV __lg(__last - __first) * 2, __comp);
1012 _STLP_PRIV __final_insertion_sort(__first, __last, __comp);
1013 }
1014}

◆ stable_partition()

template<class _ForwardIter , class _Predicate >
_ForwardIter stable_partition ( _ForwardIter  __first,
_ForwardIter  __last,
_Predicate  __pred 
)

Definition at line 866 of file _algo.c.

866 {
867 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
868 for (;;) {
869 if (__first == __last)
870 return __first;
871 else if (__pred(*__first))
872 ++__first;
873 else
874 break;
875 }
877 _STLP_ITERATOR_CATEGORY(__first, _ForwardIter));
878}
_ForwardIter __stable_partition_aux(_ForwardIter __first, _ForwardIter __last, _Predicate __pred, const forward_iterator_tag &)
Definition: _algo.c:827

Referenced by PartitionTest::stblptn0(), and PartitionTest::stblptn1().

◆ stable_sort() [1/2]

template<class _RandomAccessIter >
void stable_sort ( _RandomAccessIter  __first,
_RandomAccessIter  __last 
)

Definition at line 1197 of file _algo.c.

1198 {
1199 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
1201 _STLP_VALUE_TYPE(__first, _RandomAccessIter),
1202 _STLP_DISTANCE_TYPE(__first, _RandomAccessIter),
1203 _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _RandomAccessIter)));
1204}
void __stable_sort_aux(_RandomAccessIter __first, _RandomAccessIter __last, _Tp *, _Distance *, _Compare __comp)
Definition: _algo.c:1182

Referenced by SortTest::stblsrt1(), and SortTest::stblsrt2().

◆ stable_sort() [2/2]

template<class _RandomAccessIter , class _Compare >
void stable_sort ( _RandomAccessIter  __first,
_RandomAccessIter  __last,
_Compare  __comp 
)

Definition at line 1207 of file _algo.c.

1208 {
1209 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
1211 _STLP_VALUE_TYPE(__first, _RandomAccessIter),
1212 _STLP_DISTANCE_TYPE(__first, _RandomAccessIter),
1213 __comp);
1214}

◆ swap_ranges()

template<class _ForwardIter1 , class _ForwardIter2 >
_STLP_INLINE_LOOP _ForwardIter2 swap_ranges ( _ForwardIter1  __first1,
_ForwardIter1  __last1,
_ForwardIter2  __first2 
)

Definition at line 160 of file _algo.h.

160 {
161 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
162 for ( ; __first1 != __last1; ++__first1, ++__first2)
163 iter_swap(__first1, __first2);
164 return __first2;
165}

Referenced by SwapTest::swprnge1().

◆ transform() [1/2]

template<class _InputIter , class _OutputIter , class _UnaryOperation >
_STLP_INLINE_LOOP _OutputIter transform ( _InputIter  __first,
_InputIter  __last,
_OutputIter  __result,
_UnaryOperation  __opr 
)

Definition at line 170 of file _algo.h.

170 {
171 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
172 for ( ; __first != __last; ++__first, ++__result)
173 *__result = __opr(*__first);
174 return __result;
175}

◆ transform() [2/2]

template<class _InputIter1 , class _InputIter2 , class _OutputIter , class _BinaryOperation >
_STLP_INLINE_LOOP _OutputIter transform ( _InputIter1  __first1,
_InputIter1  __last1,
_InputIter2  __first2,
_OutputIter  __result,
_BinaryOperation  __binary_op 
)

Definition at line 178 of file _algo.h.

179 {
180 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
181 for ( ; __first1 != __last1; ++__first1, ++__first2, ++__result)
182 *__result = __binary_op(*__first1, *__first2);
183 return __result;
184}

◆ unique() [1/2]

template<class _ForwardIter >
_ForwardIter unique ( _ForwardIter  __first,
_ForwardIter  __last 
)
inline

Definition at line 298 of file _algo.h.

298 {
299 __first = adjacent_find(__first, __last);
300 return unique_copy(__first, __last, __first);
301}
_OutputIter unique_copy(_InputIter __first, _InputIter __last, _OutputIter __result)
Definition: _algo.c:348

◆ unique() [2/2]

template<class _ForwardIter , class _BinaryPredicate >
_ForwardIter unique ( _ForwardIter  __first,
_ForwardIter  __last,
_BinaryPredicate  __binary_pred 
)
inline

Definition at line 304 of file _algo.h.

305 {
306 __first = adjacent_find(__first, __last, __binary_pred);
307 return unique_copy(__first, __last, __first, __binary_pred);
308}

◆ unique_copy() [1/2]

template<class _InputIter , class _OutputIter >
_OutputIter unique_copy ( _InputIter  __first,
_InputIter  __last,
_OutputIter  __result 
)

Definition at line 348 of file _algo.c.

348 {
349 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
350 if (__first == __last) return __result;
351 return _STLP_PRIV __unique_copy(__first, __last, __result,
352 _STLP_PRIV __equal_to(_STLP_VALUE_TYPE(__first, _InputIter)),
353 _STLP_ITERATOR_CATEGORY(__result, _OutputIter));
354}
_STLP_MOVE_TO_PRIV_NAMESPACE _STLP_INLINE_LOOP _OutputIterator __unique_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryPredicate __binary_pred, _Tp *)
Definition: _algo.c:295

Referenced by UniqueTest::uniqcpy1(), UniqueTest::uniqcpy2(), and unique().

◆ unique_copy() [2/2]

template<class _InputIter , class _OutputIter , class _BinaryPredicate >
_OutputIter unique_copy ( _InputIter  __first,
_InputIter  __last,
_OutputIter  __result,
_BinaryPredicate  __binary_pred 
)

Definition at line 358 of file _algo.c.

359 {
360 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
361 if (__first == __last) return __result;
362 return _STLP_PRIV __unique_copy(__first, __last, __result, __binary_pred,
363 _STLP_ITERATOR_CATEGORY(__result, _OutputIter));
364}

◆ upper_bound() [1/2]

template<class _ForwardIter , class _Tp >
_STLP_MOVE_TO_STD_NAMESPACE _ForwardIter upper_bound ( _ForwardIter  __first,
_ForwardIter  __last,
const _Tp &  __val 
)
inline

Definition at line 507 of file _algo.h.

508 {
509 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
510 return _STLP_PRIV __upper_bound(__first, __last, __val,
511 _STLP_PRIV __less2(_STLP_VALUE_TYPE(__first, _ForwardIter), (_Tp*)0),
512 _STLP_PRIV __less2((_Tp*)0, _STLP_VALUE_TYPE(__first, _ForwardIter)),
513 _STLP_DISTANCE_TYPE(__first, _ForwardIter));
514}
_STLP_MOVE_TO_PRIV_NAMESPACE _ForwardIter __upper_bound(_ForwardIter __first, _ForwardIter __last, const _Tp &__val, _Compare1 __comp1, _Compare2 __comp2, _Distance *)
Definition: _algo.c:1356

Referenced by EqualTest::equal_range2(), BoundTest::uprbnd1(), and BoundTest::uprbnd2().

◆ upper_bound() [2/2]

template<class _ForwardIter , class _Tp , class _Compare >
_ForwardIter upper_bound ( _ForwardIter  __first,
_ForwardIter  __last,
const _Tp &  __val,
_Compare  __comp 
)
inline

Definition at line 517 of file _algo.h.

518 {
519 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
520 return _STLP_PRIV __upper_bound(__first, __last, __val, __comp, __comp,
521 _STLP_DISTANCE_TYPE(__first, _ForwardIter));
522}

Variable Documentation

◆ __last

const _RandomAccessIterator const random_access_iterator_tag &_STLP_MOVE_TO_STD_NAMESPACE _InputIterator __last { return _STLP_PRIV __distance(__first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIterator))

Definition at line 68 of file _algo.h.

Referenced by __adjacent_difference(), __BVECTOR_QUALIFIED::__BVECTOR(), __chunk_insertion_sort(), __copy_buffered(), __copy_digits(), __copy_float_and_fill(), __copy_grouped_digits(), __copy_sign(), __destroy_mv_srcs(), __destroy_range(), __destroy_range_aux(), __equal_range(), __final_insertion_sort(), __find(), __find_if(), __get_decimal_integer(), __get_integer(), __get_monetary_value(), __get_short_or_long_dayname(), __get_short_or_long_monthname(), __get_string(), __inplace_merge_aux(), __inplace_stable_partition(), __inplace_stable_sort(), __insertion_sort(), __introsort_loop(), __iota(), __is_sorted(), __linear_insert(), __lower_bound(), __make_heap(), __match(), __merge_adaptive(), __merge_sort_loop(), __merge_sort_with_buffer(), __merge_without_buffer(), __next_permutation(), __nth_element(), __partial_sort(), __partial_sort_copy(), __partial_sum(), __partition(), __pop_heap(), __pop_heap_aux(), __prev_permutation(), __push_heap_aux(), __random_sample(), __read_buffered(), __reverse(), __rotate(), __rotate_adaptive(), __rotate_aux(), __search_n(), __stable_partition_adaptive(), __stable_partition_aux(), __stable_partition_aux_aux(), __stable_sort_adaptive(), __stable_sort_aux(), __ucopy(), __ucopy_aux(), __ucopy_n(), __ucopy_ptrs(), __ucopy_trivial(), __ufill(), __unguarded_insertion_sort(), __unguarded_insertion_sort_aux(), __unguarded_linear_insert(), __unguarded_partition(), __uninitialized_fill_copy(), __uninitialized_fill_n(), __uninitialized_move(), __unique_copy(), __upper_bound(), _Destroy_Moved_Range(), _Destroy_Range(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::_Invalidate_iterators(), deque< _Tp, >::_Invalidate_iterators(), list< _Tp, >::_Invalidate_iterators(), slist< _Tp, >::_Invalidate_iterators(), _Rb_tree< _Key, _Compare, _Value, _KeyOfValue, _Traits, >::_Invalidate_iterators(), vector< _Tp, >::_Invalidate_iterators(), vector< _Tp, >::_M_allocate_and_copy(), basic_string< _CharT, _Traits, _Alloc >::_M_append(), vector< _Tp, >::_M_assign(), _Noconv_output< char_traits< char > >::_M_doit(), deque< _Tp, >::_M_erase(), vector< _Tp, >::_M_erase(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::_M_find(), _Filebuf_base::_M_get_offset(), _M_ignore_buffered(), list< _Tp, >::_M_insert(), slist< _Tp, >::_M_insert_after_range(), deque< _Tp, >::_M_insert_range_aux(), vector< _Tp, >::_M_range_insert_aux(), vector< _Tp, >::_M_range_insert_realloc(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::_M_rehash(), slist< _Tp, >::_M_splice_after_range(), slist< _Tp, >::_M_splice_range(), _Rope_rotate(), _Bs_G::_S_count(), _S_remove_if(), _S_unique(), _STLP_WEAK(), _Temporary_buffer< _ForwardIterator, _Tp >::_Temporary_buffer(), accumulate(), adjacent_difference(), adjacent_find(), __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::append(), rope< _CharT, _Alloc >::append(), list< _Tp, >::assign(), deque< _Tp, >::assign(), vector< _Tp, >::assign(), slist< _Tp, >::assign(), binary_search(), count(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::count(), count_if(), deque< _Tp, >::deque(), destroy(), time_get< _Ch, istreambuf_iterator< _Ch, char_traits< _Ch > > >::do_get_time(), equal_range(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::equal_range(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::erase(), __BVECTOR_QUALIFIED::erase(), deque< _Tp, >::erase(), list< _Tp, >::erase(), map< _Key, _Tp,, >::erase(), multimap< _Key, _Tp,, >::erase(), set< _Key,, >::erase(), multiset< _Key,, >::erase(), slist< _Tp, >::erase(), _Rb_tree< _Key, _Compare, _Value, _KeyOfValue, _Traits, >::erase(), vector< _Tp, >::erase(), slist< _Tp, >::erase_after(), find(), find_if(), basic_string< _CharT, _Traits, _Alloc >::find_last_not_of(), basic_string< _CharT, _Traits, _Alloc >::find_last_of(), for_each(), generate(), inplace_merge(), map< _Key, _Tp,, >::insert(), multimap< _Key, _Tp,, >::insert(), multiset< _Key,, >::insert(), set< _Key,, >::insert(), deque< _Tp, >::insert(), list< _Tp, >::insert(), slist< _Tp, >::insert(), vector< _Tp, >::insert(), __BVECTOR_QUALIFIED::insert(), slist< _Tp, >::insert_after(), _Rb_tree< _Key, _Compare, _Value, _KeyOfValue, _Traits, >::insert_equal(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::insert_equal_noresize(), _Rb_tree< _Key, _Compare, _Value, _KeyOfValue, _Traits, >::insert_unique(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::insert_unique_noresize(), iota(), is_heap(), is_sorted(), list< _Tp, >::list(), lower_bound(), make_heap(), map< _Key, _Tp,, >::map(), max_element(), min_element(), multimap< _Key, _Tp,, >::multimap(), multiset< _Key,, >::multiset(), next_permutation(), nth_element(), _Scan_for_wspace< _Traits >::operator()(), _Scan_for_not_wspace< _Traits >::operator()(), _Scan_for_char_val< _Traits >::operator()(), deque< wstring >::operator=(), partial_sort(), partial_sort_copy(), partial_sum(), partition(), pop_heap(), prev_permutation(), priority_queue< _Tp, _Sequence, _Compare >::priority_queue(), push_heap(), random_sample(), random_sample_n(), random_shuffle(), remove(), slist< _Tp, >::remove(), list< _Tp, >::remove(), remove_copy(), remove_copy_if(), remove_if(), basic_string< _CharT, _Traits, _Alloc >::replace(), replace_copy(), replace_copy_if(), replace_if(), vector< _Tp, >::resize(), list< _Tp, >::resize(), deque< _Tp, >::resize(), reverse(), reverse_copy(), basic_string< _CharT, _Traits, _Alloc >::rfind(), rotate(), rotate_copy(), search_n(), set< _Key,, >::set(), slist< _Tp, >::slist(), sort(), sort_heap(), list< _Tp, >::splice(), slist< _Tp, >::splice(), slist< _Tp, >::splice_after(), stable_partition(), stable_sort(), transform(), uninitialized_copy(), uninitialized_fill(), list< _Tp, >::unique(), slist< _Tp, >::unique(), unique(), unique_copy(), upper_bound(), and vector< _Tp, >::vector().

◆ __n

return __n

Definition at line 75 of file _algo.h.

Referenced by _DBG_iter_base< _Container >::__advance(), __BVECTOR_QUALIFIED::__BVECTOR(), __copy_buffered(), __do_get_alphabool(), __gcd(), __get_integer(), __is_heap(), __lg(), __match(), __power(), __random_number(), __random_sample(), __read_buffered(), __read_unbuffered(), __rotate_aux(), __search_n(), __stl_new(), __stlp_string_fill(), __ucopy(), __ufill(), __ufill_n(), __uinit_aux(), __uinit_aux_aux(), __uninitialized_fill_n(), __uninitialized_init(), __uninitialized_move(), _Advance(), _Incrementable(), _Bit_iterator_base::_M_advance(), _Deque_iterator_base< _Tp >::_M_advance(), __node_alloc::_M_allocate(), __node_alloc_impl::_M_allocate(), _Valarray_base< _Tp >::_M_allocate(), allocator< _Tp >::_M_allocate(), vector< _Tp, >::_M_allocate_and_copy(), _String_base< _Tp, _Alloc >::_M_allocate_block(), basic_filebuf< _CharT, _Traits >::_M_allocate_buffers(), basic_string< _CharT, _Traits, _Alloc >::_M_append(), basic_string< _CharT, _Traits, _Alloc >::_M_append_dispatch(), _M_append_fast_pos(), _M_append_sum_no_overflow(), _M_append_sum_pos(), basic_string< _CharT, _Traits, _Alloc >::_M_appendT(), basic_string< _CharT, _Traits, _Alloc >::_M_assign(), basic_string< _CharT, _Traits, _Alloc >::_M_assign_dispatch(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::_M_before_begin(), _Bvector_base< _Alloc >::_M_bit_alloc(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::_M_bkt_num(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::_M_bkt_num_key(), vector< _Tp, >::_M_compute_next_size(), bitset< _Nb >::_M_copy_from_string(), __node_alloc::_M_deallocate(), __node_alloc_impl::_M_deallocate(), _Rope_iterator_base< _CharT, _Alloc >::_M_decr(), _Deque_base< _Tp, _Alloc >::_M_destroy_nodes(), _Base_bitset< _Nw >::_M_do_left_shift(), _Base_bitset< _Nw >::_M_do_right_shift(), _Noconv_output< char_traits< char > >::_M_doit(), deque< _Tp, >::_M_erase(), __BVECTOR_QUALIFIED::_M_fill_assign(), deque< _Tp, >::_M_fill_assign(), slist< _Tp, >::_M_fill_assign(), vector< _Tp, >::_M_fill_assign(), list< _Tp, >::_M_fill_assign(), vector< _Tp, >::_M_fill_insert(), deque< _Tp, >::_M_fill_insert(), list< _Tp, >::_M_fill_insert(), __BVECTOR_QUALIFIED::_M_fill_insert(), vector< _Tp, >::_M_fill_insert_aux(), deque< _Tp, >::_M_fill_insert_aux(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::_M_find(), basic_istream< _CharT, _Traits >::_M_formatted_get(), basic_streambuf< _CharT, _Traits >::_M_gbump(), _M_ignore_buffered(), _M_ignore_unbuffered(), _Rope_iterator_base< _CharT, _Alloc >::_M_incr(), __BVECTOR_QUALIFIED::_M_initialize(), vector< _Tp, >::_M_initialize(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::_M_initialize_buckets(), basic_string< _CharT, _Traits, _Alloc >::_M_initialize_dispatch(), slist< _Tp, >::_M_insert_after_fill(), basic_string< _CharT, _Traits, _Alloc >::_M_insert_dispatch(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::_M_insert_noresize(), basic_string< _CharT, _Traits, _Alloc >::_M_insert_overflow(), vector< wchar_t >::_M_insert_overflow_aux(), deque< _Tp, >::_M_insert_range_aux(), basic_string< _CharT, _Traits, _Alloc >::_M_insertT(), basic_ostream< _CharT, _Traits >::_M_put_nowiden(), basic_ostream< _CharT, _Traits >::_M_put_widen(), basic_ostream< _CharT, _Traits >::_M_put_widen_aux(), __BVECTOR_QUALIFIED::_M_range_check(), deque< _Tp, >::_M_range_check(), vector< _Tp, >::_M_range_check(), basic_string< _CharT, _Traits, _Alloc >::_M_range_initialize(), vector< _Tp, >::_M_range_insert_aux(), vector< _Tp, >::_M_range_insert_realloc(), basic_string< _CharT, _Traits, _Alloc >::_M_replace_dispatch(), basic_string< _CharT, _Traits, _Alloc >::_M_reserve(), deque< _Tp, >::_M_reserve_elements_at_back(), deque< _Tp, >::_M_reserve_elements_at_front(), basic_streambuf< _CharT, _Traits >::_M_sputnc(), basic_filebuf< _CharT, _Traits >::_M_underflow_aux(), basic_filebuf< _CharT, _Traits >::_M_write(), basic_stringbuf< _CharT, _Traits, _Alloc >::_M_xsputnc(), basic_streambuf< _CharT, _Traits >::_M_xsputnc(), _mm_extract_pi16(), _mm_insert_pi16(), _mm_maskmove_si64(), _mm_shuffle_pi16(), _Rope_fill(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::_S_before_begin(), __node_alloc_impl::_S_refill(), _Rope_RopeRep< _CharT, _Alloc >::_S_rounded_up_size(), rope< _CharT, _Alloc >::_S_rounded_up_size(), _S_string_copy(), _String_base< _Tp, _Alloc >::_String_base(), _Valarray_base< _Tp >::_Valarray_base(), _Vector_base< _Tp, _Alloc >::_Vector_base(), __node_alloc::allocate(), __malloc_alloc::allocate(), __new_alloc::allocate(), __debug_alloc< _Alloc >::allocate(), allocator< _Tp >::allocate(), pthread_allocator< _Tp >::allocate(), per_thread_allocator< _Tp >::allocate(), EH_allocator< _Tp >::allocate(), __iostring_allocator< _CharT >::allocate(), _STLP_alloc_proxy< _Value, _Tp, _MaybeReboundAlloc >::allocate(), __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::append(), rope< _CharT, _Alloc >::append(), basic_string< _CharT, _Traits, _Alloc >::append(), char_traits< char >::assign(), __char_traits_base< _CharT, _IntT >::assign(), __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::assign(), __BVECTOR_QUALIFIED::assign(), basic_string< _CharT, _Traits, _Alloc >::assign(), deque< _Tp, >::assign(), slist< _Tp, >::assign(), vector< _Tp, >::assign(), list< _Tp, >::assign(), __BVECTOR_QUALIFIED::at(), deque< _Tp, >::at(), vector< _Tp, >::at(), basic_string< _CharT, _Traits, _Alloc >::at(), __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::at(), basic_string(), basic_string< _CharT, _Traits, _Alloc >::basic_string(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::begin(), unordered_map< _Key, _Tp,,, >::begin(), unordered_multimap< _Key, _Tp,,, >::begin(), unordered_set< _Value,,, >::begin(), unordered_multiset< _Value,,, >::begin(), bitset< _Nb >::bitset(), unordered_map< _Key, _Tp,,, >::bucket_size(), unordered_multimap< _Key, _Tp,,, >::bucket_size(), unordered_set< _Value,,, >::bucket_size(), unordered_multiset< _Value,,, >::bucket_size(), char_traits< char >::compare(), __char_traits_base< _CharT, _IntT >::compare(), basic_string< _CharT, _Traits, _Alloc >::compare(), basic_string< _CharT, _Traits, _Alloc >::copy(), __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::copy(), __char_traits_base< _CharT, _IntT >::copy(), rope< _CharT, _Alloc >::copy(), count(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::count(), count_if(), allocator< _Tp >::deallocate(), __iostring_allocator< _CharT >::deallocate(), pthread_allocator< _Tp >::deallocate(), per_thread_allocator< _Tp >::deallocate(), EH_allocator< _Tp >::deallocate(), __debug_alloc< _Alloc >::deallocate(), __node_alloc::deallocate(), deque< _Tp, >::deque(), hash_map< _Key, _Tp,,, >::elems_in_bucket(), hash_multimap< _Key, _Tp,,, >::elems_in_bucket(), hash_set< _Value,,, >::elems_in_bucket(), hash_multiset< _Value,,, >::elems_in_bucket(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::elems_in_bucket(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::end(), unordered_map< _Key, _Tp,,, >::end(), unordered_multimap< _Key, _Tp,,, >::end(), unordered_set< _Value,,, >::end(), unordered_multiset< _Value,,, >::end(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::equal_range(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::erase(), _Rb_tree< _Key, _Compare, _Value, _KeyOfValue, _Traits, >::erase(), list< _Tp, >::erase(), rope< _CharT, _Alloc >::erase(), __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::erase(), basic_string< _CharT, _Traits, _Alloc >::erase(), basic_string< _CharT, _Traits, _Alloc >::find(), __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::find(), __char_traits_base< _CharT, _IntT >::find(), basic_string< _CharT, _Traits, _Alloc >::find_first_not_of(), __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::find_first_not_of(), basic_string< _CharT, _Traits, _Alloc >::find_first_of(), __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::find_first_of(), basic_string< _CharT, _Traits, _Alloc >::find_last_not_of(), __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::find_last_not_of(), basic_string< _CharT, _Traits, _Alloc >::find_last_of(), __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::find_last_of(), for(), basic_streambuf< _CharT, _Traits >::gbump(), generate_n(), basic_istream< _CharT, _Traits >::get(), basic_istream< _CharT, _Traits >::getline(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::hashtable(), basic_istream< _CharT, _Traits >::ignore(), basic_string< _CharT, _Traits, _Alloc >::insert(), vector< _Tp, >::insert(), deque< _Tp, >::insert(), list< _Tp, >::insert(), slist< _Tp, >::insert(), __BVECTOR_QUALIFIED::insert(), rope< _CharT, _Alloc >::insert(), __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::insert(), slist< _Tp, >::insert_after(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::insert_equal(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::insert_equal_noresize(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::insert_unique(), hashtable< _Val, _Key, _HF, _Traits, _ExK, _EqK, _All >::insert_unique_noresize(), _Rope_flatten_char_consumer< _CharT >::operator()(), _Rope_find_char_char_consumer< _CharT >::operator()(), _Rope_insert_char_consumer< _CharT, _Traits >::operator()(), reverse_iterator< _RandomAccessIterator, _Tp,, >::operator+(), _Deque_iterator< _Tp, _Traits >::operator+(), _DBG_iter< _Container, _Traits >::operator+(), operator+(), reverse_iterator< _RandomAccessIterator, _Tp,, >::operator+=(), _Deque_iterator< _Tp, _Traits >::operator+=(), _Rope_const_iterator< _CharT, _Alloc >::operator+=(), _Rope_iterator< _CharT, _Alloc >::operator+=(), reverse_iterator< _RandomAccessIterator, _Tp,, >::operator-(), operator-(), _Deque_iterator< _Tp, _Traits >::operator-(), _DBG_iter< _Container, _Traits >::operator-(), reverse_iterator< _RandomAccessIterator, _Tp,, >::operator-=(), _Deque_iterator< _Tp, _Traits >::operator-=(), _Rope_const_iterator< _CharT, _Alloc >::operator-=(), _Rope_iterator< _CharT, _Alloc >::operator-=(), operator<(), operator<<(), operator==(), operator>>(), basic_istream< _CharT, _Traits >::operator>>(), reverse_iterator< _RandomAccessIterator, _Tp,, >::operator[](), _Deque_iterator< _Tp, _Traits >::operator[](), _DBG_iter< _Container, _Traits >::operator[](), _Rope_const_iterator< _CharT, _Alloc >::operator[](), __char_wrapper< _CharT >::operator[](), __cstr_wrapper< _CharT >::operator[](), __bstr_wrapper< _CharT, _Traits, _Alloc >::operator[](), __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::operator[](), __sum_storage_elem< _CharT, _Traits, _Alloc >::operator[](), valarray< _Tp >::operator[](), __BVECTOR_QUALIFIED::operator[](), deque< _Tp, >::operator[](), vector< _Tp, >::operator[](), basic_string< _CharT, _Traits, _Alloc >::operator[](), basic_streambuf< _CharT, _Traits >::pbump(), power(), basic_streambuf< _CharT, _Traits >::pubsetbuf(), random_sample_n(), basic_istream< _CharT, _Traits >::read(), basic_string< _CharT, _Traits, _Alloc >::replace(), rope< _CharT, _Alloc >::replace(), __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::replace(), __BVECTOR_QUALIFIED::reserve(), vector< _Tp, >::reserve(), basic_string< _CharT, _Traits, _Alloc >::reserve(), basic_string< _CharT, _Traits, _Alloc >::resize(), basic_string< _CharT, _Traits, _Alloc >::rfind(), __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::rfind(), rope< _CharT, _Alloc >::rope(), basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff(), basic_stringbuf< _CharT, _Traits, _Alloc >::seekpos(), setbase(), basic_stringbuf< _CharT, _Traits, _Alloc >::setbuf(), basic_filebuf< _CharT, _Traits >::setbuf(), setprecision(), setw(), basic_streambuf< _CharT, _Traits >::sgetn(), slist< _Tp, >::slist(), basic_streambuf< _CharT, _Traits >::sputn(), __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::substr(), basic_string< _CharT, _Traits, _Alloc >::substr(), uninitialized_fill_n(), valarray< _Tp >::valarray(), vector< _Tp, >::vector(), basic_ostream< _CharT, _Traits >::write(), basic_streambuf< _CharT, _Traits >::xsgetn(), basic_stringbuf< _CharT, _Traits, _Alloc >::xsputn(), and basic_streambuf< _CharT, _Traits >::xsputn().

◆ __pred