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

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

?? stl_list.c

?? 粗慥集成算法集合 ,并有詳細的文檔資料和測試數據處
?? C
字號:
/*
 *
 *
 * Copyright (c) 1994
 * Hewlett-Packard Company
 *
 * Copyright (c) 1996,1997
 * Silicon Graphics Computer Systems, Inc.
 *
 * Copyright (c) 1997
 * Moscow Center for SPARC Technology
 *
 * Copyright (c) 1999 
 * Boris Fomitchev
 *
 * This material is provided "as is", with absolutely no warranty expressed
 * or implied. Any use is at your own risk.
 *
 * Permission to use or copy this software for any purpose is hereby granted 
 * without fee, provided the above notices are retained on all copies.
 * Permission to modify the code and to distribute modified code is granted,
 * provided the above notices are retained, and a notice that the code was
 * modified is included with the above copyright notice.
 *
 */
#ifndef __STL_LIST_C
#define __STL_LIST_C

#if defined(__sgi) && !defined(__GNUC__) && (_MIPS_SIM != _MIPS_SIM_ABI32)
#pragma set woff 1174
#pragma set woff 1375
#endif

# undef list
# define  list  __WORKAROUND_RENAME(list)

__STL_BEGIN_NAMESPACE

template <class _Dummy>
void 
_List_global<_Dummy>::_Transfer(_List_node_base* __position, 
				_List_node_base* __first, _List_node_base* __last) {
  if (__position != __last) {
    // Remove [first, last) from its old position.
    ((_Node*) (__last->_M_prev))->_M_next = __position;
    ((_Node*) (__first->_M_prev))->_M_next    = __last;
    ((_Node*) (__position->_M_prev))->_M_next = __first; 
    
    // Splice [first, last) into its new position.
    _Node* __tmp = (_Node*) (__position->_M_prev);
    __position->_M_prev = __last->_M_prev;
    __last->_M_prev      = __first->_M_prev; 
    __first->_M_prev    = __tmp;
  }
}

template <class _Tp, class _Alloc>
void 
_List_base<_Tp,_Alloc>::clear() 
{
  __stl_debug_do(_Invalidate_all());
  _List_node<_Tp>* __cur = (_List_node<_Tp>*) _M_node._M_data->_M_next;
  while (__cur != _M_node._M_data) {
    _List_node<_Tp>* __tmp = __cur;
    __cur = (_List_node<_Tp>*) __cur->_M_next;
    destroy(&__tmp->_M_data);
    _M_node.deallocate(__tmp, 1);
  }
  _M_node._M_data->_M_next = _M_node._M_data;
  _M_node._M_data->_M_prev = _M_node._M_data;
}

# if defined (__STL_NESTED_TYPE_PARAM_BUG) 
#  define __iterator__   _List_iterator<_Tp, _Nonconst_traits<_Tp> >
#  define iterator       __iterator__
#  define const_iterator _List_iterator<_Tp, _Const_traits<_Tp> >
#  define size_type      size_t
# else
#  define __iterator__ __STL_TYPENAME_ON_RETURN_TYPE list<_Tp,_Alloc>::iterator
# endif

# if defined (__STL_MEMBER_TEMPLATES) && ! defined (__STL_INLINE_MEMBER_TEMPLATES)

template <class _Tp, class _Alloc> template <class _Predicate>
void list<_Tp, _Alloc>::remove_if(_Predicate __pred) 
{
  iterator __first = begin();
  iterator __last = end();
  while (__first != __last) {
    iterator __next = __first;
    ++__next;
    if (__pred(*__first)) erase(__first);
    __first = __next;
  }
}

template <class _Tp, class _Alloc>  template <class _BinaryPredicate>
void list<_Tp, _Alloc>::unique(_BinaryPredicate __binary_pred) {
  iterator __first = begin();
  iterator __last = end();
  if (__first == __last) return;
  iterator __next = __first;
  while (++__next != __last) {
    if (__binary_pred(*__first, *__next))
      erase(__next);
    else
      __first = __next;
    __next = __first;
  }
}

template <class _Tp, class _Alloc>  template <class _StrictWeakOrdering>
void list<_Tp, _Alloc>::merge(list<_Tp, _Alloc>& __x,
			      _StrictWeakOrdering __comp) {
  iterator __first1 = begin();
  iterator __last1 = end();
  iterator __first2 = __x.begin();
  iterator __last2 = __x.end();
  while (__first1 != __last1 && __first2 != __last2)
    if (__comp(*__first2, *__first1)) {
      iterator __next = __first2;
      _List_global_inst::_Transfer(__first1._M_node, __first2._M_node, (++__next)._M_node);
      __first2 = __next;
    }
    else
      ++__first1;
  if (__first2 != __last2) _List_global_inst::_Transfer(__last1._M_node, __first2._M_node, __last2._M_node);
}

template <class _Tp, class _Alloc> template <class _StrictWeakOrdering>
void list<_Tp, _Alloc>::sort(_StrictWeakOrdering __comp) {
  // Do nothing if the list has length 0 or 1.
  if (_M_node._M_data->_M_next != _M_node._M_data &&
      ((_Node*) (_M_node._M_data->_M_next))->_M_next != _M_node._M_data) {
    list<_Tp, _Alloc> __carry;
    list<_Tp, _Alloc> __counter[64];
    int __fill = 0;
    while (!empty()) {
      __carry.splice(__carry.begin(), *this, begin());
      int __i = 0;
      while(__i < __fill && !__counter[__i].empty()) {
	__counter[__i].merge(__carry, __comp);
	__carry.swap(__counter[__i++]);
      }
      __carry.swap(__counter[__i]);         
      if (__i == __fill) ++__fill;
    } 

    for (int __i = 1; __i < __fill; ++__i) 
      __counter[__i].merge(__counter[__i-1], __comp);
    swap(__counter[__fill-1]);
  }
  __stl_debug_do(_Invalidate_all());
}
# endif

#ifndef __STL_MEMBER_TEMPLATES

template <class _Tp, class _Alloc>
void 
list<_Tp, _Alloc>::insert(iterator __position, 
                          const _Tp* __first, const _Tp* __last)
{
  for ( ; __first != __last; ++__first)
    insert(__position, *__first);
}

template <class _Tp, class _Alloc>
void 
list<_Tp, _Alloc>::insert(iterator __position,
                         const_iterator __first, const_iterator __last)
{
  for ( ; __first != __last; ++__first)
    insert(__position, *__first);
}

#endif

template <class _Tp, class _Alloc>
void 
list<_Tp, _Alloc>::_M_fill_insert(iterator __position, size_type __n, const _Tp& __x)
{
  for ( ; __n > 0; --__n)
    insert(__position, __x);
}

template <class _Tp, class _Alloc>
__iterator__ list<_Tp, _Alloc>::erase(iterator __first, 
				      iterator __last)
{
  while (__first != __last)
    erase(__first++);
  return __last;
}

template <class _Tp, class _Alloc>
void list<_Tp, _Alloc>::resize(size_type __new_size, const _Tp& __x)
{
  iterator __i = begin();
  size_type __len = 0;
  for ( ; __i != end() && __len < __new_size; ++__i, ++__len)
    ;
  if (__len == __new_size)
    erase(__i, end());
  else                          // __i == end()
    insert(end(), __new_size - __len, __x);
}

template <class _Tp, class _Alloc>
list<_Tp, _Alloc>& list<_Tp, _Alloc>::operator=(const list<_Tp, _Alloc>& __x)
{
  if (this != &__x) {
    iterator __first1 = begin();
    iterator __last1 = end();
    const_iterator __first2 = __x.begin();
    const_iterator __last2 = __x.end();
    while (__first1 != __last1 && __first2 != __last2) 
      *__first1++ = *__first2++;
    if (__first2 == __last2)
      erase(__first1, __last1);
    else
      insert(__last1, __first2, __last2);
  }
  __stl_debug_do(_Invalidate_all());
  return *this;
}

template <class _Tp, class _Alloc>
void list<_Tp, _Alloc>::_M_fill_assign(size_type __n, const _Tp& __val) {
  iterator __i = begin();
  for ( ; __i != end() && __n > 0; ++__i, --__n)
    *__i = __val;
  if (__n > 0)
    insert(end(), __n, __val);
  else
    erase(__i, end());
}

template <class _Tp, class _Alloc>
void list<_Tp, _Alloc>::remove(const _Tp& __value)
{
  iterator __first = begin();
  iterator __last = end();
  while (__first != __last) {
    iterator __next = __first;
    ++__next;
    if (*__first == __value) 
      erase(__first);
    __first = __next;
  }
}

template <class _Tp, class _Alloc>
void list<_Tp, _Alloc>::unique()
{
  iterator __first = begin();
  iterator __last = end();
  if (__first == __last) return;
  iterator __next = __first;
  while (++__next != __last) {
    if (*__first == *__next)
      erase(__next);
    else
      __first = __next;
    __next = __first;
  }
}

template <class _Tp, class _Alloc>
void list<_Tp, _Alloc>::merge(list<_Tp, _Alloc>& __x)
{
  iterator __first1 = begin();
  iterator __last1 = end();
  iterator __first2 = __x.begin();
  iterator __last2 = __x.end();
  while (__first1 != __last1 && __first2 != __last2)
    if (*__first2 < *__first1) {
      iterator __next = __first2;
      _List_global_inst::_Transfer(__first1._M_node, __first2._M_node, (++__next)._M_node);
      __first2 = __next;
    }
    else
      ++__first1;
  if (__first2 != __last2) _List_global_inst::_Transfer(__last1._M_node, __first2._M_node, __last2._M_node);
  __stl_debug_do(__x._Invalidate_all());
}

template <class _Tp, class _Alloc>
void list<_Tp, _Alloc>::reverse() 
{
  // Do nothing if the list has length 0 or 1.
  if (_M_node._M_data->_M_next != _M_node._M_data &&
      ((_Node*) (_M_node._M_data->_M_next))->_M_next != _M_node._M_data) {
    _Node* __first = (_Node*)((_Node*)_M_node._M_data->_M_next)->_M_next;
    //    __first = __first->_M_next;
    while (__first != _M_node._M_data) {
      _Node* __old = __first;
      __first = (_Node*)__first->_M_next;
      _List_global_inst::_Transfer(( _Node*)_M_node._M_data->_M_next, __old, __first);
    }
  }
  __stl_debug_do(_Invalidate_all());
}    

template <class _Tp, class _Alloc>
void list<_Tp, _Alloc>::sort()
{
  // Do nothing if the list has length 0 or 1.
  if (_M_node._M_data->_M_next != _M_node._M_data &&
      ((_Node*) (_M_node._M_data->_M_next))->_M_next != _M_node._M_data) {
    list<_Tp, _Alloc> __carry;
    list<_Tp, _Alloc> __counter[64];
    int __fill = 0;
    while (!empty()) {
      __carry.splice(__carry.begin(), *this, begin());
      int __i = 0;
      while(__i < __fill && !__counter[__i].empty()) {
        __counter[__i].merge(__carry);
        __carry.swap(__counter[__i++]);
      }
      __carry.swap(__counter[__i]);         
      if (__i == __fill) ++__fill;
    } 

    for (int __i = 1; __i < __fill; ++__i)
      __counter[__i].merge(__counter[__i-1]);
    swap(__counter[__fill-1]);
  }
  __stl_debug_do(_Invalidate_all());
}

# undef list

# undef  iterator
# undef  const_iterator
# undef  size_type
# undef __iterator__

__STL_END_NAMESPACE

#endif /*  __STL_LIST_C */

// Local Variables:
// mode:C++
// End:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人欧美一区二区三区视频网页| 欧美日韩国产系列| 国产一区二区女| 亚洲自拍偷拍图区| 亚洲综合另类小说| 午夜免费久久看| 亚洲3atv精品一区二区三区| 亚洲美女视频在线| 亚洲精品日韩一| 亚洲国产精品久久人人爱 | xvideos.蜜桃一区二区| 欧美一区二区三区影视| 色综合久久久久综合体桃花网| 北条麻妃国产九九精品视频| 不卡一二三区首页| 在线影视一区二区三区| 欧美高清激情brazzers| 日韩午夜av电影| 国产视频视频一区| 亚洲欧美一区二区不卡| 香蕉影视欧美成人| 精品一区二区三区av| bt7086福利一区国产| 欧美丝袜丝交足nylons| 日韩精品一区在线| 国产精品动漫网站| 免费看精品久久片| 丰满亚洲少妇av| 精品视频一区三区九区| 日韩精品影音先锋| 亚洲人成影院在线观看| 日韩中文字幕不卡| 成人午夜私人影院| 91精品免费在线观看| 日本一区二区不卡视频| 亚洲成人av免费| 国产成人av资源| 欧美日韩国产综合视频在线观看| 精品国产免费人成在线观看| 1024成人网| 久久福利视频一区二区| 91小视频免费看| 精品播放一区二区| 亚洲高清免费视频| 风间由美一区二区三区在线观看| 91精品国产黑色紧身裤美女| 国产精品国产三级国产| 免费成人美女在线观看.| 色综合久久99| 国产精品视频一二| 久久99精品国产麻豆不卡| 欧美亚洲另类激情小说| 国产精品欧美久久久久一区二区| 美腿丝袜亚洲色图| 欧洲国产伦久久久久久久| 国产精品妹子av| 国产在线精品一区在线观看麻豆| 欧美日韩三级一区| 亚洲欧美国产高清| 99国产精品久久久久久久久久| 精品乱码亚洲一区二区不卡| 天天操天天色综合| 欧美午夜精品久久久久久超碰| 国产精品久久久久久久久晋中 | 91视频www| 国产精品乱码人人做人人爱| 国产一区二区在线影院| 欧美一卡在线观看| 日韩电影在线观看一区| 在线成人av影院| 日韩精彩视频在线观看| 在线播放中文字幕一区| 亚洲成人激情自拍| 欧美日韩mp4| 天天av天天翘天天综合网色鬼国产| 色综合久久久网| 亚洲一区二区综合| 欧美日韩激情一区二区| 亚洲成人综合网站| 6080午夜不卡| 精品亚洲porn| 国产午夜精品一区二区| 成人ar影院免费观看视频| 中文字幕一区在线观看视频| 99热在这里有精品免费| 亚洲精品日产精品乱码不卡| 欧美亚洲精品一区| 免费成人性网站| 国产日韩欧美激情| 91免费版在线| 午夜精品久久久久| 久久网站最新地址| 91在线观看污| 亚洲成精国产精品女| 91精品蜜臀在线一区尤物| 另类综合日韩欧美亚洲| 中文字幕乱码一区二区免费| 91片黄在线观看| 五月婷婷综合网| 亚洲精品一区二区三区福利| 不卡视频免费播放| 亚洲成人久久影院| 久久久99久久精品欧美| 日本韩国视频一区二区| 久久国产精品72免费观看| 久久久久久久久99精品| 色偷偷一区二区三区| 精品一区二区三区蜜桃| 亚洲欧美一区二区三区国产精品| 欧美久久一区二区| 成人免费福利片| 水野朝阳av一区二区三区| 欧美激情资源网| 欧美精品色一区二区三区| 国产成人午夜精品影院观看视频| 亚洲狠狠爱一区二区三区| 久久久亚洲精品石原莉奈| 欧美日韩免费观看一区三区| 国产99久久久国产精品免费看 | 精品在线视频一区| 亚洲男人的天堂在线观看| 日韩欧美一区电影| 欧美在线你懂得| 国产电影一区在线| 另类小说综合欧美亚洲| 一区二区欧美精品| 中文字幕欧美日本乱码一线二线| 日韩一区二区视频在线观看| 色婷婷精品大在线视频| 国产精品中文欧美| 另类成人小视频在线| 亚洲高清免费观看 | 免费成人美女在线观看| 亚洲精品成人少妇| 中文子幕无线码一区tr| 欧美成人精精品一区二区频| 欧美乱妇15p| 欧美肥大bbwbbw高潮| 欧美日韩日日摸| 欧美日韩中文字幕精品| 在线观看视频91| 色综合久久天天| 91啪在线观看| 91在线观看污| 在线欧美一区二区| 色狠狠一区二区| 欧美日韩免费在线视频| 欧美色精品在线视频| 日本精品裸体写真集在线观看| 不卡的av电影在线观看| 粉嫩高潮美女一区二区三区| 国产成人精品亚洲午夜麻豆| 国产一区在线看| 成人午夜av电影| jlzzjlzz亚洲女人18| 91玉足脚交白嫩脚丫在线播放| 欧美日韩国产另类一区| 色综合久久久久综合体| 在线亚洲+欧美+日本专区| 色综合天天视频在线观看| 91小视频免费看| 欧美手机在线视频| 在线成人免费观看| 精品久久久久久久久久久久包黑料 | 在线观看一区二区视频| 91国产福利在线| 91精品啪在线观看国产60岁| 日韩欧美在线123| 久久精品视频一区| 国产精品女主播av| 亚洲国产一区二区视频| 日本女优在线视频一区二区| 免费不卡在线观看| 福利电影一区二区| 色综合色狠狠天天综合色| 欧美日韩久久不卡| 久久综合狠狠综合久久激情| 欧美极品少妇xxxxⅹ高跟鞋| 一区二区成人在线观看| 丝袜美腿亚洲色图| 成人h精品动漫一区二区三区| 在线亚洲高清视频| 精品国产伦一区二区三区观看体验 | 欧美电影免费观看高清完整版在| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲同性gay激情无套| 日韩vs国产vs欧美| 99精品久久只有精品| 欧美日韩日日摸| 国产精品欧美久久久久一区二区 | 久久综合久久鬼色中文字| 国产精品久久精品日日| 日韩av高清在线观看| caoporn国产精品| 日韩视频在线你懂得| 亚洲精品乱码久久久久久 | 国产精品久99| 视频一区二区三区入口| 色噜噜狠狠色综合中国| 欧美精品一区二区三区很污很色的|