亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? stl_algo.c

?? 粗慥集成算法集合 ,并有詳細的文檔資料和測試數據處
?? C
?? 第 1 頁 / 共 5 頁
字號:
_RandomAccessIter __random_sample(_InputIter __first, _InputIter __last,
                                  _RandomAccessIter __out,
                                  _RandomNumberGenerator& __rand,
                                  const _Distance __n)
{
  _Distance __m = 0;
  _Distance __t = __n;
  for ( ; __first != __last && __m < __n; ++__m, ++__first)
    __out[__m] = *__first;

  while (__first != __last) {
    ++__t;
    _Distance __M = __rand(__t);
    if (__M < __n)
      __out[__M] = *__first;
    ++__first;
  }

  return __out + __m;
}

// partition, stable_partition, and their auxiliary functions

template <class _ForwardIter, class _Predicate>
_ForwardIter __partition(_ForwardIter __first,
		         _ForwardIter __last,
			 _Predicate   __pred,
			 forward_iterator_tag) {
  if (__first == __last) return __first;

  while (__pred(*__first))
    if (++__first == __last) return __first;

  _ForwardIter __next = __first;

  while (++__next != __last)
    if (__pred(*__next)) {
      swap(*__first, *__next);
      ++__first;
    }

  return __first;
}

template <class _BidirectionalIter, class _Predicate>
_BidirectionalIter __partition(_BidirectionalIter __first,
                               _BidirectionalIter __last,
			       _Predicate __pred,
			       bidirectional_iterator_tag) {
  while (true) {
    while (true)
      if (__first == __last)
        return __first;
      else if (__pred(*__first))
        ++__first;
      else
        break;
    --__last;
    while (true)
      if (__first == __last)
        return __first;
      else if (!__pred(*__last))
        --__last;
      else
        break;
    iter_swap(__first, __last);
    ++__first;
  }
}

template <class _ForwardIter, class _Predicate, class _Distance>
_ForwardIter __inplace_stable_partition(_ForwardIter __first,
                                        _ForwardIter __last,
                                        _Predicate __pred, _Distance __len) {
  if (__len == 1)
    return __pred(*__first) ? __last : __first;
  _ForwardIter __middle = __first;
  advance(__middle, __len / 2);
  return rotate(__inplace_stable_partition(__first, __middle, __pred, 
                                           __len / 2),
                __middle,
                __inplace_stable_partition(__middle, __last, __pred,
                                           __len - __len / 2));
}

template <class _ForwardIter, class _Pointer, class _Predicate, 
          class _Distance>
_ForwardIter __stable_partition_adaptive(_ForwardIter __first,
                                         _ForwardIter __last,
                                         _Predicate __pred, _Distance __len,
                                         _Pointer __buffer,
                                         _Distance __buffer_size) 
{
  if (__len <= __buffer_size) {
    _ForwardIter __result1 = __first;
    _Pointer __result2 = __buffer;
    for ( ; __first != __last ; ++__first)
      if (__pred(*__first)) {
        *__result1 = *__first;
        ++__result1;
      }
      else {
        *__result2 = *__first;
        ++__result2;
      }
    copy(__buffer, __result2, __result1);
    return __result1;
  }
  else {
    _ForwardIter __middle = __first;
    advance(__middle, __len / 2);
    return rotate(__stable_partition_adaptive(
                          __first, __middle, __pred,
                          __len / 2, __buffer, __buffer_size),
                    __middle,
                    __stable_partition_adaptive(
                          __middle, __last, __pred,
                          __len - __len / 2, __buffer, __buffer_size));
  }
}

template <class _RandomAccessIter, class _Tp>
_RandomAccessIter __unguarded_partition(_RandomAccessIter __first, 
                                        _RandomAccessIter __last, 
                                        _Tp __pivot) 
{
  while (true) {
    while (*__first < __pivot)
      ++__first;
    --__last;
    while (__pivot < *__last)
      --__last;
    if (!(__first < __last))
      return __first;
    iter_swap(__first, __last);
    ++__first;
  }
}    

template <class _RandomAccessIter, class _Tp, class _Compare>
_RandomAccessIter __unguarded_partition(_RandomAccessIter __first, 
                                        _RandomAccessIter __last, 
                                        _Tp __pivot, _Compare __comp) 
{
  while (true) {
    while (__comp(*__first, __pivot))
      ++__first;
    --__last;
    while (__comp(__pivot, *__last))
      --__last;
    if (!(__first < __last))
      return __first;
    iter_swap(__first, __last);
    ++__first;
  }
}

// sort() and its auxiliary functions. 

# define  __stl_threshold  16

template <class _RandomAccessIter, class _Tp>
void __unguarded_linear_insert(_RandomAccessIter __last, _Tp __val) {
  _RandomAccessIter __next = __last;
  --__next;
  while (__val < *__next) {
    *__last = *__next;
    __last = __next;
    --__next;
  }
  *__last = __val;
}


template <class _RandomAccessIter, class _Tp, class _Compare>
void __unguarded_linear_insert(_RandomAccessIter __last, _Tp __val, 
                               _Compare __comp) {
  _RandomAccessIter __next = __last;
  --__next;  
  while (__comp(__val, *__next)) {
    *__last = *__next;
    __last = __next;
    --__next;
  }
  *__last = __val;
}

template <class _RandomAccessIter, class _Tp>
inline void __linear_insert(_RandomAccessIter __first, 
                            _RandomAccessIter __last, _Tp __val) {
  //*TY 12/26/1998 - added __val as a paramter
  //  _Tp __val = *__last;     //*TY 12/26/1998 - __val supplied by caller
  if (__val < *__first) {
    copy_backward(__first, __last, __last + 1);
    *__first = __val;
  }
  else
    __unguarded_linear_insert(__last, __val);
}

template <class _RandomAccessIter, class _Tp, class _Compare>
inline void __linear_insert(_RandomAccessIter __first, 
                            _RandomAccessIter __last, _Tp __val, _Compare __comp) {		
  //*TY 12/26/1998 - added __val as a paramter
  //  _Tp __val = *__last;		    //*TY 12/26/1998 - __val supplied by caller
  if (__comp(__val, *__first)) {
    copy_backward(__first, __last, __last + 1);
    *__first = __val;
  }
  else
    __unguarded_linear_insert(__last, __val, __comp);
}

template <class _RandomAccessIter>
void __insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last) {
  if (__first == __last) return; 
  for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i)
    __linear_insert(__first, __i, *__i);			//*TY 12/26/1998 - supply *__i as __val
}

template <class _RandomAccessIter, class _Compare>
void __insertion_sort(_RandomAccessIter __first,
                      _RandomAccessIter __last, _Compare __comp) {
  if (__first == __last) return;
  for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i)
    __linear_insert(__first, __i, *__i, __comp);	//*TY 12/26/1998 - supply *__i as __val
}

template <class _RandomAccessIter, class _Tp>
void __unguarded_insertion_sort_aux(_RandomAccessIter __first, 
                                    _RandomAccessIter __last, _Tp*) {
  for (_RandomAccessIter __i = __first; __i != __last; ++__i)
    __unguarded_linear_insert(__i, _Tp(*__i));
}

template <class _RandomAccessIter>
inline void __unguarded_insertion_sort(_RandomAccessIter __first, 
                                _RandomAccessIter __last) {
  __unguarded_insertion_sort_aux(__first, __last, __VALUE_TYPE(__first));
}

template <class _RandomAccessIter, class _Tp, class _Compare>
void __unguarded_insertion_sort_aux(_RandomAccessIter __first, 
                                    _RandomAccessIter __last,
                                    _Tp*, _Compare __comp) {
  for (_RandomAccessIter __i = __first; __i != __last; ++__i)
    __unguarded_linear_insert(__i, _Tp(*__i), __comp);
}

template <class _RandomAccessIter, class _Compare>
inline void __unguarded_insertion_sort(_RandomAccessIter __first, 
                                       _RandomAccessIter __last,
                                       _Compare __comp) {
  __unguarded_insertion_sort_aux(__first, __last, __VALUE_TYPE(__first),
                                 __comp);
}

template <class _RandomAccessIter>
void __final_insertion_sort(_RandomAccessIter __first, 
                            _RandomAccessIter __last) {
  if (__last - __first > __stl_threshold) {
    __insertion_sort(__first, __first + __stl_threshold);
    __unguarded_insertion_sort(__first + __stl_threshold, __last);
  }
  else
    __insertion_sort(__first, __last);
}

template <class _RandomAccessIter, class _Compare>
void __final_insertion_sort(_RandomAccessIter __first, 
                            _RandomAccessIter __last, _Compare __comp) {
  if (__last - __first > __stl_threshold) {
    __insertion_sort(__first, __first + __stl_threshold, __comp);
    __unguarded_insertion_sort(__first + __stl_threshold, __last, __comp);
  }
  else
    __insertion_sort(__first, __last, __comp);
}

template <class _RandomAccessIter, class _Tp, class _Size>
void __introsort_loop(_RandomAccessIter __first,
                      _RandomAccessIter __last, _Tp*,
                      _Size __depth_limit)
{
  while (__last - __first > __stl_threshold) {
    if (__depth_limit == 0) {
      partial_sort(__first, __last, __last);
      return;
    }
    --__depth_limit;
    _RandomAccessIter __cut =
      __unguarded_partition(__first, __last,
                            _Tp(__median(*__first,
                                         *(__first + (__last - __first)/2),
                                         *(__last - 1))));
    __introsort_loop(__cut, __last, (_Tp*) 0, __depth_limit);
    __last = __cut;
  }
}

template <class _RandomAccessIter, class _Tp, class _Size, class _Compare>
void __introsort_loop(_RandomAccessIter __first,
                      _RandomAccessIter __last, _Tp*,
                      _Size __depth_limit, _Compare __comp)
{
  while (__last - __first > __stl_threshold) {
    if (__depth_limit == 0) {
      partial_sort(__first, __last, __last, __comp);
      return;
    }
    --__depth_limit;
    _RandomAccessIter __cut =
      __unguarded_partition(__first, __last,
                            _Tp(__median(*__first,
                                         *(__first + (__last - __first)/2),
                                         *(__last - 1), __comp)),
       __comp);
    __introsort_loop(__cut, __last, (_Tp*) 0, __depth_limit, __comp);
    __last = __cut;
  }
}

// stable_sort() and its auxiliary functions.

template <class _RandomAccessIter>
void __inplace_stable_sort(_RandomAccessIter __first,
                           _RandomAccessIter __last) {
  if (__last - __first < 15) {
    __insertion_sort(__first, __last);
    return;
  }
  _RandomAccessIter __middle = __first + (__last - __first) / 2;
  __inplace_stable_sort(__first, __middle);
  __inplace_stable_sort(__middle, __last);
  __merge_without_buffer(__first, __middle, __last,
                         __middle - __first,
                         __last - __middle);
}

template <class _RandomAccessIter, class _Compare>
void __inplace_stable_sort(_RandomAccessIter __first,
                           _RandomAccessIter __last, _Compare __comp) {
  if (__last - __first < 15) {
    __insertion_sort(__first, __last, __comp);
    return;
  }
  _RandomAccessIter __middle = __first + (__last - __first) / 2;
  __inplace_stable_sort(__first, __middle, __comp);
  __inplace_stable_sort(__middle, __last, __comp);
  __merge_without_buffer(__first, __middle, __last,
                         __middle - __first,
                         __last - __middle,
                         __comp);
}

template <class _RandomAccessIter1, class _RandomAccessIter2,
          class _Distance>
void __merge_sort_loop(_RandomAccessIter1 __first,
                       _RandomAccessIter1 __last, 
                       _RandomAccessIter2 __result, _Distance __step_size) {
  _Distance __two_step = 2 * __step_size;

  while (__last - __first >= __two_step) {
    __result = merge(__first, __first + __step_size,
                     __first + __step_size, __first + __two_step,
                     __result);
    __first += __two_step;
  }

  __step_size = min(_Distance(__last - __first), __step_size);
  merge(__first, __first + __step_size, __first + __step_size, __last,
        __result);
}

template <class _RandomAccessIter1, class _RandomAccessIter2,
          class _Distance, class _Compare>
void __merge_sort_loop(_RandomAccessIter1 __first,
                       _RandomAccessIter1 __last, 
                       _RandomAccessIter2 __result, _Distance __step_size,
                       _Compare __comp) {
  _Distance __two_step = 2 * __step_size;

  while (__last - __first >= __two_step) {
    __result = merge(__first, __first + __step_size,
                     __first + __step_size, __first + __two_step,
                     __result,
                     __comp);
    __first += __two_step;
  }
  __step_size = min(_Distance(__last - __first), __step_size);

  merge(__first, __first + __step_size,
        __first + __step_size, __last,
        __result,
        __comp);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩在线播放三区| 26uuu久久综合| 九九九精品视频| 亚洲欧美激情视频在线观看一区二区三区 | 国产风韵犹存在线视精品| 亚洲另类色综合网站| 国产亚洲欧美日韩在线一区| 精品视频一区二区三区免费| 国产98色在线|日韩| 日本午夜一区二区| 亚洲免费三区一区二区| 国产日韩欧美精品一区| 日韩精品在线一区二区| 欧美日韩国产片| 色先锋久久av资源部| 豆国产96在线|亚洲| 美女国产一区二区| 首页亚洲欧美制服丝腿| 亚洲免费观看高清完整版在线 | 中文字幕精品一区二区三区精品| 欧美日韩一区二区三区不卡| 91网站在线观看视频| 成人性生交大片免费| 国产精品一区二区免费不卡| 蜜桃视频在线观看一区| 亚洲成人手机在线| 一区二区三区日韩精品视频| 中文字幕中文字幕中文字幕亚洲无线| 精品国产sm最大网站免费看| 日韩一区二区三区电影在线观看| 欧美人狂配大交3d怪物一区| 91久久线看在观草草青青| 91无套直看片红桃| 色美美综合视频| 日本高清免费不卡视频| 91国产福利在线| 在线观看一区不卡| 在线视频国内一区二区| 欧美日韩国产系列| 欧美一区二区三区视频在线| 日韩亚洲欧美在线| 欧美成人精精品一区二区频| 日韩欧美国产综合一区| 日韩你懂的在线播放| 精品国产三级电影在线观看| 2023国产精品视频| 欧美极品aⅴ影院| 国产精品九色蝌蚪自拍| 亚洲激情六月丁香| 午夜视频在线观看一区| 免费成人在线网站| 国产原创一区二区三区| 国产高清精品网站| 91在线观看免费视频| 欧美在线播放高清精品| 7777精品伊人久久久大香线蕉的 | 亚洲成国产人片在线观看| 香蕉久久一区二区不卡无毒影院 | 99精品在线免费| 91国模大尺度私拍在线视频| 欧美日韩另类国产亚洲欧美一级| 欧美日韩国产一级二级| 精品国产免费一区二区三区四区 | 亚洲欧美日韩一区二区| 亚洲一区中文日韩| 麻豆精品一区二区综合av| 国产一区二区看久久| 99riav一区二区三区| 欧美久久久久久久久久| 精品日产卡一卡二卡麻豆| 午夜国产精品一区| 精品一区二区三区视频| 99综合电影在线视频| 欧美日韩国产成人在线免费| 亚洲精品一线二线三线| 成人免费一区二区三区视频| 亚洲成人资源网| 国产盗摄女厕一区二区三区| 色狠狠综合天天综合综合| 欧美一区二区人人喊爽| 国产精品青草久久| 日韩精品一卡二卡三卡四卡无卡| 国产一区二区在线电影| 欧美手机在线视频| 中文在线资源观看网站视频免费不卡| 亚洲综合久久av| 国产呦萝稀缺另类资源| 欧洲精品中文字幕| 久久精品一区二区| 午夜一区二区三区视频| 国产馆精品极品| 欧美一级二级在线观看| 国产精品妹子av| 精品在线你懂的| 欧美日韩国产一级| 国产精品久久久久久福利一牛影视| 亚洲电影一级片| 91在线视频免费观看| 欧美va天堂va视频va在线| 一区二区在线免费观看| 国产一区二区精品久久99| 欧美剧情片在线观看| 亚洲日本青草视频在线怡红院| 美女网站色91| 欧美日韩精品专区| 中文字幕欧美一区| 国产乱淫av一区二区三区 | 国产精品天天看| 美国三级日本三级久久99| 欧美影院午夜播放| 中文字幕在线观看不卡| 国内精品国产三级国产a久久| 欧美性感一区二区三区| 亚洲欧美日韩综合aⅴ视频| 成人在线视频一区二区| 26uuu亚洲综合色欧美| 丝袜亚洲另类丝袜在线| 在线视频欧美区| 亚洲日本在线a| 91免费视频网| 中文字幕在线一区二区三区| 国产成人综合在线| 精品国产伦一区二区三区观看方式| 午夜免费久久看| 欧美老年两性高潮| 亚洲午夜久久久久久久久电影网 | 激情综合色丁香一区二区| 一二三四区精品视频| 成av人片一区二区| 中文久久乱码一区二区| 粉嫩aⅴ一区二区三区四区五区| 精品久久久久香蕉网| 极品少妇xxxx偷拍精品少妇| 日韩三区在线观看| 美女一区二区三区在线观看| 欧美一区二区女人| 免费日本视频一区| 日韩三区在线观看| 精品在线免费视频| 久久亚洲综合色一区二区三区| 狠狠色丁香久久婷婷综合_中| 日韩一区二区三区在线| 激情综合网天天干| 久久精品一区四区| 成人精品高清在线| 国产精品三级视频| 91免费视频观看| 亚洲香肠在线观看| 欧美一级在线免费| 狠狠色狠狠色综合| 国产精品卡一卡二| 91行情网站电视在线观看高清版| 亚洲综合成人在线视频| 欧美日韩另类一区| 久久成人久久鬼色| 亚洲国产精品精华液2区45| eeuss鲁片一区二区三区在线看| 1000精品久久久久久久久| 91国在线观看| 久久精工是国产品牌吗| 国产偷国产偷精品高清尤物| 91在线观看视频| 青青草国产精品亚洲专区无| 久久久亚洲高清| 91视频一区二区三区| 午夜伦欧美伦电影理论片| 精品精品欲导航| 97国产一区二区| 免费看日韩a级影片| 国产欧美一区二区精品久导航| 91婷婷韩国欧美一区二区| 午夜精品福利一区二区三区蜜桃| 精品久久久久av影院| av亚洲精华国产精华精华| 偷窥国产亚洲免费视频| 久久尤物电影视频在线观看| 色婷婷精品久久二区二区蜜臂av | 日本少妇一区二区| 久久精品一二三| 欧美在线三级电影| 国产一区二区三区高清播放| 亚洲欧美日韩精品久久久久| 日韩欧美在线影院| 91视频国产资源| 毛片av一区二区| 亚洲一二三区在线观看| 久久久亚洲精华液精华液精华液 | 毛片av一区二区三区| 亚洲色图一区二区| 337p日本欧洲亚洲大胆色噜噜| 欧美午夜电影一区| 91精品国产全国免费观看| 92精品国产成人观看免费 | 免费人成网站在线观看欧美高清| 国产精品免费aⅴ片在线观看| 91精品婷婷国产综合久久竹菊| 成人免费黄色在线| 久国产精品韩国三级视频| 一区二区三区不卡在线观看| 久久久www成人免费无遮挡大片|