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

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

?? stl_algo.c

?? 粗慥集成算法集合 ,并有詳細的文檔資料和測試數據處
?? C
?? 第 1 頁 / 共 5 頁
字號:

template <class _ForwardIter, class _Tp, class _Distance>
_ForwardIter __upper_bound(_ForwardIter __first, _ForwardIter __last,
                           const _Tp& __val, _Distance*)
{
  _Distance __len = 0;
  distance(__first, __last, __len);
  _Distance __half;
  _ForwardIter __middle;

  while (__len > 0) {
    __half = __len >> 1;
    __middle = __first;
    advance(__middle, __half);
    if (__val < *__middle)
      __len = __half;
    else {
      __first = __middle;
      ++__first;
      __len = __len - __half - 1;
    }
  }
  return __first;
}

template <class _ForwardIter, class _Tp, class _Compare, class _Distance>
_ForwardIter __upper_bound(_ForwardIter __first, _ForwardIter __last,
                           const _Tp& __val, _Compare __comp, _Distance*)
{
  _Distance __len = 0;
  distance(__first, __last, __len);
  _Distance __half;
  _ForwardIter __middle;

  while (__len > 0) {
    __half = __len >> 1;
    __middle = __first;
    advance(__middle, __half);
    if (__comp(__val, *__middle))
      __len = __half;
    else {
      __first = __middle;
      ++__first;
      __len = __len - __half - 1;
    }
  }
  return __first;
}

template <class _ForwardIter, class _Tp, class _Distance>
pair<_ForwardIter, _ForwardIter>
__equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val,
              _Distance*)
{
  _Distance __len = 0;
  distance(__first, __last, __len);
  _Distance __half;
  _ForwardIter __middle, __left, __right;

  while (__len > 0) {
    __half = __len >> 1;
    __middle = __first;
    advance(__middle, __half);
    if (*__middle < __val) {
      __first = __middle;
      ++__first;
      __len = __len - __half - 1;
    }
    else if (__val < *__middle)
      __len = __half;
    else {
      __left = lower_bound(__first, __middle, __val);
      advance(__first, __len);
      __right = upper_bound(++__middle, __first, __val);
      return pair<_ForwardIter, _ForwardIter>(__left, __right);
    }
  }
  return pair<_ForwardIter, _ForwardIter>(__first, __first);
}

template <class _ForwardIter, class _Tp, class _Compare, class _Distance>
pair<_ForwardIter, _ForwardIter>
__equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val,
              _Compare __comp, _Distance*)
{
  _Distance __len = 0;
  distance(__first, __last, __len);
  _Distance __half;
  _ForwardIter __middle, __left, __right;

  while (__len > 0) {
    __half = __len >> 1;
    __middle = __first;
    advance(__middle, __half);
    if (__comp(*__middle, __val)) {
      __first = __middle;
      ++__first;
      __len = __len - __half - 1;
    }
    else if (__comp(__val, *__middle))
      __len = __half;
    else {
      __left = lower_bound(__first, __middle, __val, __comp);
      advance(__first, __len);
      __right = upper_bound(++__middle, __first, __val, __comp);
      return pair<_ForwardIter, _ForwardIter>(__left, __right);
    }
  }
  return pair<_ForwardIter, _ForwardIter>(__first, __first);
}           

template <class _InputIter1, class _InputIter2, class _OutputIter>
_OutputIter merge(_InputIter1 __first1, _InputIter1 __last1,
                  _InputIter2 __first2, _InputIter2 __last2,
                  _OutputIter __result) {
  __stl_debug_check(__check_range(__first1, __last1));
  __stl_debug_check(__check_range(__first2, __last2));
  while (__first1 != __last1 && __first2 != __last2) {
    if (*__first2 < *__first1) {
      *__result = *__first2;
      ++__first2;
    }
    else {
      *__result = *__first1;
      ++__first1;
    }
    ++__result;
  }
  return copy(__first2, __last2, copy(__first1, __last1, __result));
}

template <class _InputIter1, class _InputIter2, class _OutputIter,
          class _Compare>
_OutputIter merge(_InputIter1 __first1, _InputIter1 __last1,
                  _InputIter2 __first2, _InputIter2 __last2,
                  _OutputIter __result, _Compare __comp) {
  __stl_debug_check(__check_range(__first1, __last1));
  __stl_debug_check(__check_range(__first2, __last2));
  while (__first1 != __last1 && __first2 != __last2) {
    if (__comp(*__first2, *__first1)) {
      *__result = *__first2;
      ++__first2;
    }
    else {
      *__result = *__first1;
      ++__first1;
    }
    ++__result;
  }
  return copy(__first2, __last2, copy(__first1, __last1, __result));
}

template <class _BidirectionalIter, class _Distance>
void __merge_without_buffer(_BidirectionalIter __first,
                            _BidirectionalIter __middle,
                            _BidirectionalIter __last,
                            _Distance __len1, _Distance __len2) {
  if (__len1 == 0 || __len2 == 0)
    return;
  if (__len1 + __len2 == 2) {
    if (*__middle < *__first)
      iter_swap(__first, __middle);
    return;
  }
  _BidirectionalIter __first_cut = __first;
  _BidirectionalIter __second_cut = __middle;
  _Distance __len11 = 0;
  _Distance __len22 = 0;
  if (__len1 > __len2) {
    __len11 = __len1 / 2;
    advance(__first_cut, __len11);
    __second_cut = lower_bound(__middle, __last, *__first_cut);
    distance(__middle, __second_cut, __len22);
  }
  else {
    __len22 = __len2 / 2;
    advance(__second_cut, __len22);
    __first_cut = upper_bound(__first, __middle, *__second_cut);
    distance(__first, __first_cut, __len11);
  }
  _BidirectionalIter __new_middle
    = rotate(__first_cut, __middle, __second_cut);
  __merge_without_buffer(__first, __first_cut, __new_middle,
                         __len11, __len22);
  __merge_without_buffer(__new_middle, __second_cut, __last, __len1 - __len11,
                         __len2 - __len22);
}

template <class _BidirectionalIter, class _Distance, class _Compare>
void __merge_without_buffer(_BidirectionalIter __first,
                            _BidirectionalIter __middle,
                            _BidirectionalIter __last,
                            _Distance __len1, _Distance __len2,
                            _Compare __comp) {
  if (__len1 == 0 || __len2 == 0)
    return;
  if (__len1 + __len2 == 2) {
    if (__comp(*__middle, *__first))
      iter_swap(__first, __middle);
    return;
  }
  _BidirectionalIter __first_cut = __first;
  _BidirectionalIter __second_cut = __middle;
  _Distance __len11 = 0;
  _Distance __len22 = 0;
  if (__len1 > __len2) {
    __len11 = __len1 / 2;
    advance(__first_cut, __len11);
    __second_cut = lower_bound(__middle, __last, *__first_cut, __comp);
    distance(__middle, __second_cut, __len22);
  }
  else {
    __len22 = __len2 / 2;
    advance(__second_cut, __len22);
    __first_cut = upper_bound(__first, __middle, *__second_cut, __comp);
    distance(__first, __first_cut, __len11);
  }
  _BidirectionalIter __new_middle
    = rotate(__first_cut, __middle, __second_cut);
  __merge_without_buffer(__first, __first_cut, __new_middle, __len11, __len22,
                         __comp);
  __merge_without_buffer(__new_middle, __second_cut, __last, __len1 - __len11,
                         __len2 - __len22, __comp);
}

template <class _BidirectionalIter1, class _BidirectionalIter2,
          class _Distance>
_BidirectionalIter1 __rotate_adaptive(_BidirectionalIter1 __first,
                                      _BidirectionalIter1 __middle,
                                      _BidirectionalIter1 __last,
                                      _Distance __len1, _Distance __len2,
                                      _BidirectionalIter2 __buffer,
                                      _Distance __buffer_size) {
  _BidirectionalIter2 __buffer_end;
  if (__len1 > __len2 && __len2 <= __buffer_size) {
    __buffer_end = copy(__middle, __last, __buffer);
    copy_backward(__first, __middle, __last);
    return copy(__buffer, __buffer_end, __first);
  }
  else if (__len1 <= __buffer_size) {
    __buffer_end = copy(__first, __middle, __buffer);
    copy(__middle, __last, __first);
    return copy_backward(__buffer, __buffer_end, __last);
  }
  else
    return rotate(__first, __middle, __last);
}

template <class _BidirectionalIter, class _Distance>
void __merge_without_buffer(_BidirectionalIter __first,
                            _BidirectionalIter __middle,
                            _BidirectionalIter __last,
                            _Distance __len1, _Distance __len2);

template <class _BidirectionalIter, class _Distance, class _Compare>
void __merge_without_buffer(_BidirectionalIter __first,
                            _BidirectionalIter __middle,
                            _BidirectionalIter __last,
                            _Distance __len1, _Distance __len2,
                            _Compare __comp);



template <class _BidirectionalIter1, class _BidirectionalIter2,
          class _BidirectionalIter3>
_BidirectionalIter3 __merge_backward(_BidirectionalIter1 __first1,
                                     _BidirectionalIter1 __last1,
                                     _BidirectionalIter2 __first2,
                                     _BidirectionalIter2 __last2,
                                     _BidirectionalIter3 __result) {
  if (__first1 == __last1)
    return copy_backward(__first2, __last2, __result);
  if (__first2 == __last2)
    return copy_backward(__first1, __last1, __result);
  --__last1;
  --__last2;
  while (true) {
    if (*__last2 < *__last1) {
      *--__result = *__last1;
      if (__first1 == __last1)
        return copy_backward(__first2, ++__last2, __result);
      --__last1;
    }
    else {
      *--__result = *__last2;
      if (__first2 == __last2)
        return copy_backward(__first1, ++__last1, __result);
      --__last2;
    }
  }
}

template <class _BidirectionalIter1, class _BidirectionalIter2,
          class _BidirectionalIter3, class _Compare>
_BidirectionalIter3 __merge_backward(_BidirectionalIter1 __first1,
                                     _BidirectionalIter1 __last1,
                                     _BidirectionalIter2 __first2,
                                     _BidirectionalIter2 __last2,
                                     _BidirectionalIter3 __result,
                                     _Compare __comp) {
  if (__first1 == __last1)
    return copy_backward(__first2, __last2, __result);
  if (__first2 == __last2)
    return copy_backward(__first1, __last1, __result);
  --__last1;
  --__last2;
  while (true) {
    if (__comp(*__last2, *__last1)) {
      *--__result = *__last1;
      if (__first1 == __last1)
        return copy_backward(__first2, ++__last2, __result);
      --__last1;
    }
    else {
      *--__result = *__last2;
      if (__first2 == __last2)
        return copy_backward(__first1, ++__last1, __result);
      --__last2;
    }
  }
}

template <class _BidirectionalIter, class _Tp, class _Distance>
inline void __inplace_merge_aux(_BidirectionalIter __first,
                                _BidirectionalIter __middle,
                                _BidirectionalIter __last, _Tp*, _Distance*) {
  _Distance __len1 = 0;
  distance(__first, __middle, __len1);
  _Distance __len2 = 0;
  distance(__middle, __last, __len2);

  _Temporary_buffer<_BidirectionalIter, _Tp> __buf(__first, __last);
  if (__buf.begin() == 0)
    __merge_without_buffer(__first, __middle, __last, __len1, __len2);
  else
    __merge_adaptive(__first, __middle, __last, __len1, __len2,
                     __buf.begin(), _Distance(__buf.size()));
}

template <class _BidirectionalIter, class _Tp, 
          class _Distance, class _Compare>
inline void __inplace_merge_aux(_BidirectionalIter __first,
                                _BidirectionalIter __middle,
                                _BidirectionalIter __last, _Tp*, _Distance*,
                                _Compare __comp) {
  _Distance __len1 = 0;
  distance(__first, __middle, __len1);
  _Distance __len2 = 0;
  distance(__middle, __last, __len2);

  _Temporary_buffer<_BidirectionalIter, _Tp> __buf(__first, __last);
  if (__buf.begin() == 0)
    __merge_without_buffer(__first, __middle, __last, __len1, __len2, __comp);
  else
    __merge_adaptive(__first, __middle, __last, __len1, __len2,
                     __buf.begin(), _Distance(__buf.size()),
                     __comp);
}

template <class _BidirectionalIter>
void inplace_merge(_BidirectionalIter __first,
		   _BidirectionalIter __middle,
		   _BidirectionalIter __last) {
  __stl_debug_check(__check_range(__first, __middle));
  __stl_debug_check(__check_range(__middle, __last));
  if (__first == __middle || __middle == __last)
    return;
  __inplace_merge_aux(__first, __middle, __last,
                      __VALUE_TYPE(__first), __DISTANCE_TYPE(__first));
}

template <class _BidirectionalIter, class _Compare>
void inplace_merge(_BidirectionalIter __first,
		   _BidirectionalIter __middle,
		   _BidirectionalIter __last, _Compare __comp) {
  __stl_debug_check(__check_range(__first, __middle));
  __stl_debug_check(__check_range(__middle, __last));
  if (__first == __middle || __middle == __last)
    return;
  __inplace_merge_aux(__first, __middle, __last,
                      __VALUE_TYPE(__first), __DISTANCE_TYPE(__first),
                      __comp);
}

template <class _InputIter1, class _InputIter2>
bool includes(_InputIter1 __first1, _InputIter1 __last1,
              _InputIter2 __first2, _InputIter2 __last2) {
  __stl_debug_check(__check_range(__first1, __last1));
  __stl_debug_check(__check_range(__first2, __last2));
  while (__first1 != __last1 && __first2 != __last2)
    if (*__first2 < *__first1)
     

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线综合视频播放| 91丨porny丨户外露出| 国产真实乱子伦精品视频| 暴力调教一区二区三区| 日韩欧美电影在线| 一区二区三区视频在线看| 国产福利一区二区三区视频在线| 日本福利一区二区| 久久精品一区二区| 奇米777欧美一区二区| 在线视频一区二区三区| 欧美高清在线视频| 国产一区二区三区四区五区美女| 亚洲成人激情自拍| 色婷婷av一区二区三区大白胸| 久久精品一区二区| 麻豆精品精品国产自在97香蕉| 欧美性xxxxxx少妇| 一区二区在线电影| 91在线码无精品| 国产精品视频你懂的| 国产真实乱偷精品视频免| 日韩欧美专区在线| 蜜臀av性久久久久蜜臀aⅴ| 欧美日韩国产中文| 午夜精品久久久久久久蜜桃app| 91色综合久久久久婷婷| 国产精品久久久一区麻豆最新章节| 国产资源精品在线观看| 久久女同性恋中文字幕| 韩国三级在线一区| 久久精品夜色噜噜亚洲a∨| 久久精品国产亚洲a| 日韩你懂的在线播放| 狠狠久久亚洲欧美| 久久一留热品黄| 成人综合婷婷国产精品久久蜜臀| 中文字幕av不卡| aaa欧美大片| 一区二区三区久久| 欧美日韩精品欧美日韩精品一 | 久久精品国产精品亚洲综合| 欧美日韩国产三级| 麻豆久久久久久久| 久久久精品免费免费| jizz一区二区| 亚洲成人资源网| 日韩一区二区三区电影在线观看| 久久精品国产亚洲a| 亚洲国产精品成人久久综合一区| 91丨porny丨户外露出| 丝瓜av网站精品一区二区| 日韩午夜激情免费电影| 国产黄色精品视频| 有坂深雪av一区二区精品| 51精品久久久久久久蜜臀| 国模冰冰炮一区二区| 亚洲欧洲国产日本综合| 欧美精品粉嫩高潮一区二区| 激情综合色丁香一区二区| 国产精品国产三级国产aⅴ入口| 在线免费av一区| 国产一区在线不卡| 一区二区三区四区亚洲| 日韩欧美一级精品久久| av网站免费线看精品| 奇米精品一区二区三区在线观看| 中文字幕不卡在线观看| 欧美丰满少妇xxxbbb| 成人av在线网| 人人精品人人爱| 亚洲蜜桃精久久久久久久| 精品欧美一区二区在线观看| 91色在线porny| 国产在线麻豆精品观看| 亚洲午夜免费视频| 国产欧美日韩激情| 欧美一区二区三区啪啪| 色综合天天综合| 国产精品正在播放| 青青草97国产精品免费观看| 亚洲人成网站精品片在线观看| 精品国产一区a| 欧美肥妇free| 在线观看欧美黄色| 99久久精品国产精品久久| 麻豆久久久久久| 三级久久三级久久| 亚洲人成人一区二区在线观看 | 7777精品伊人久久久大香线蕉经典版下载 | 亚洲精品一卡二卡| 欧美激情一区二区三区不卡| 日韩三级中文字幕| 欧美日韩电影在线| 色综合一个色综合亚洲| 成人综合婷婷国产精品久久| 久久99精品久久久久| 偷窥国产亚洲免费视频| 曰韩精品一区二区| 亚洲欧美在线视频观看| 国产欧美精品在线观看| 欧美tk—视频vk| 欧美一区二区三区的| 欧美日韩国产免费| 在线亚洲一区二区| 91麻豆免费在线观看| 大胆亚洲人体视频| 国产成人精品一区二区三区网站观看| 美国十次综合导航| 美女一区二区三区在线观看| 亚洲成人av一区二区| 亚洲综合色噜噜狠狠| 一区二区三区四区五区视频在线观看| 日韩理论电影院| 亚洲精品免费在线观看| 亚洲私人黄色宅男| 日韩美女啊v在线免费观看| 日韩一区在线看| 中文字幕中文字幕一区二区| 国产精品福利av| 亚洲视频综合在线| 亚洲免费大片在线观看| 亚洲一区二区三区四区在线观看| 亚洲国产一区二区三区| 婷婷久久综合九色综合绿巨人| 亚洲va欧美va天堂v国产综合| 香蕉久久夜色精品国产使用方法 | 天天射综合影视| 日本特黄久久久高潮| 青青青伊人色综合久久| 国产美女娇喘av呻吟久久| 国产凹凸在线观看一区二区| 成人av资源在线观看| 在线亚洲免费视频| 日韩一区二区中文字幕| 国产天堂亚洲国产碰碰| 一区二区三区中文免费| 男女男精品视频网| 国产成人丝袜美腿| 日本精品免费观看高清观看| 欧美一区三区四区| 国产精品人人做人人爽人人添| 亚洲人成网站精品片在线观看| 日韩综合一区二区| 成人视屏免费看| 欧美人动与zoxxxx乱| 久久久久久久网| 亚洲国产精品人人做人人爽| 九九九精品视频| 一本一道久久a久久精品综合蜜臀| 欧美精品亚洲二区| 中文字幕在线观看不卡视频| 亚洲成av人片一区二区三区| 国产二区国产一区在线观看| 欧美亚洲综合在线| 久久精品免费在线观看| 一区二区激情视频| 国产精品888| 这里只有精品免费| 亚洲精品国产a久久久久久| 韩国欧美国产1区| 欧美无人高清视频在线观看| 国产欧美1区2区3区| 日本vs亚洲vs韩国一区三区 | 亚洲一区二区三区免费视频| 久久精品99久久久| 在线中文字幕一区| 国产精品亲子伦对白| 免费高清不卡av| 欧美日精品一区视频| 国产精品免费aⅴ片在线观看| 免费黄网站欧美| 欧美色国产精品| 亚洲欧洲综合另类| 国产成人在线影院| 日韩美女在线视频| 三级一区在线视频先锋| 91麻豆自制传媒国产之光| 国产区在线观看成人精品| 久久99久久久欧美国产| 正在播放亚洲一区| 五月天久久比比资源色| 色激情天天射综合网| 自拍偷拍国产精品| 99免费精品在线| 中文一区二区在线观看| 国产真实乱子伦精品视频| 精品久久久久一区二区国产| 日韩成人午夜精品| 欧美丰满嫩嫩电影| 日韩av一二三| 欧美一级黄色片| 日本不卡123| 日韩精品一区二区三区视频| 日本不卡高清视频| 欧美电影免费观看完整版| 青娱乐精品视频| wwwwxxxxx欧美| 国产毛片精品国产一区二区三区| 欧美精品一区二区三|