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

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

?? stl_list.h

?? TSP問題的一個類庫 有源代碼和stl
?? H
?? 第 1 頁 / 共 2 頁
字號:
#endif /* __STL_MEMBER_TEMPLATES */
  list(const list<_Tp, _Alloc>& __x) : _Base(__x.get_allocator())
    { insert(begin(), __x.begin(), __x.end()); }

  ~list() { }

  list<_Tp, _Alloc>& operator=(const list<_Tp, _Alloc>& __x);

public:
  // assign(), a generalized assignment member function.  Two
  // versions: one that takes a count, and one that takes a range.
  // The range version is a member template, so we dispatch on whether
  // or not the type is an integer.

  void assign(size_type __n, const _Tp& __val) { _M_fill_assign(__n, __val); }

  void _M_fill_assign(size_type __n, const _Tp& __val);

#ifdef __STL_MEMBER_TEMPLATES

  template <class _InputIterator>
  void assign(_InputIterator __first, _InputIterator __last) {
    typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
    _M_assign_dispatch(__first, __last, _Integral());
  }

  template <class _Integer>
  void _M_assign_dispatch(_Integer __n, _Integer __val, __true_type)
    { _M_fill_assign((size_type) __n, (_Tp) __val); }

  template <class _InputIterator>
  void _M_assign_dispatch(_InputIterator __first, _InputIterator __last,
                          __false_type);

#endif /* __STL_MEMBER_TEMPLATES */

protected:
  void transfer(iterator __position, iterator __first, iterator __last) {
    if (__position != __last) {
      // Remove [first, last) from its old position.
      ((_Node*) (__last._M_node->_M_prev))->_M_next     = __position._M_node;
      ((_Node*) (__first._M_node->_M_prev))->_M_next    = __last._M_node;
      ((_Node*) (__position._M_node->_M_prev))->_M_next = __first._M_node; 

      // Splice [first, last) into its new position.
      _Node* __tmp = (_Node*) (__position._M_node->_M_prev);
      __position._M_node->_M_prev = __last._M_node->_M_prev;
      __last._M_node->_M_prev      = __first._M_node->_M_prev; 
      __first._M_node->_M_prev    = __tmp;
    }
  }

public:
  void splice(iterator __position, list& __x) {
    if (!__x.empty()) 
      transfer(__position, __x.begin(), __x.end());
  }
  void splice(iterator __position, list&, iterator __i) {
    iterator __j = __i;
    ++__j;
    if (__position == __i || __position == __j) return;
    transfer(__position, __i, __j);
  }
  void splice(iterator __position, list&, iterator __first, iterator __last) {
    if (__first != __last) 
      transfer(__position, __first, __last);
  }
  void remove(const _Tp& __value);
  void unique();
  void merge(list& __x);
  void reverse();
  void sort();

#ifdef __STL_MEMBER_TEMPLATES
  template <class _Predicate> void remove_if(_Predicate);
  template <class _BinaryPredicate> void unique(_BinaryPredicate);
  template <class _StrictWeakOrdering> void merge(list&, _StrictWeakOrdering);
  template <class _StrictWeakOrdering> void sort(_StrictWeakOrdering);
#endif /* __STL_MEMBER_TEMPLATES */
};

template <class _Tp, class _Alloc>
inline bool 
operator==(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y)
{
  typedef typename list<_Tp,_Alloc>::const_iterator const_iterator;
  const_iterator __end1 = __x.end();
  const_iterator __end2 = __y.end();

  const_iterator __i1 = __x.begin();
  const_iterator __i2 = __y.begin();
  while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2) {
    ++__i1;
    ++__i2;
  }
  return __i1 == __end1 && __i2 == __end2;
}

template <class _Tp, class _Alloc>
inline bool operator<(const list<_Tp,_Alloc>& __x,
                      const list<_Tp,_Alloc>& __y)
{
  return lexicographical_compare(__x.begin(), __x.end(),
                                 __y.begin(), __y.end());
}

#ifdef __STL_FUNCTION_TMPL_PARTIAL_ORDER

template <class _Tp, class _Alloc>
inline bool operator!=(const list<_Tp,_Alloc>& __x,
                       const list<_Tp,_Alloc>& __y) {
  return !(__x == __y);
}

template <class _Tp, class _Alloc>
inline bool operator>(const list<_Tp,_Alloc>& __x,
                      const list<_Tp,_Alloc>& __y) {
  return __y < __x;
}

template <class _Tp, class _Alloc>
inline bool operator<=(const list<_Tp,_Alloc>& __x,
                       const list<_Tp,_Alloc>& __y) {
  return !(__y < __x);
}

template <class _Tp, class _Alloc>
inline bool operator>=(const list<_Tp,_Alloc>& __x,
                       const list<_Tp,_Alloc>& __y) {
  return !(__x < __y);
}

template <class _Tp, class _Alloc>
inline void 
swap(list<_Tp, _Alloc>& __x, list<_Tp, _Alloc>& __y)
{
  __x.swap(__y);
}

#endif /* __STL_FUNCTION_TMPL_PARTIAL_ORDER */

#ifdef __STL_MEMBER_TEMPLATES

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

#else /* __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 /* __STL_MEMBER_TEMPLATES */

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>
list<_Tp,_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);
  }
  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());
}

#ifdef __STL_MEMBER_TEMPLATES

template <class _Tp, class _Alloc> template <class _InputIter>
void
list<_Tp, _Alloc>::_M_assign_dispatch(_InputIter __first2, _InputIter __last2,
                                      __false_type)
{
  iterator __first1 = begin();
  iterator __last1 = end();
  for ( ; __first1 != __last1 && __first2 != __last2; ++__first1, ++__first2)
    *__first1 = *__first2;
  if (__first2 == __last2)
    erase(__first1, __last1);
  else
    insert(__last1, __first2, __last2);
}

#endif /* __STL_MEMBER_TEMPLATES */

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;
      transfer(__first1, __first2, ++__next);
      __first2 = __next;
    }
    else
      ++__first1;
  if (__first2 != __last2) transfer(__last1, __first2, __last2);
}

template <class _Tp, class _Alloc>
void list<_Tp, _Alloc>::reverse() 
{
  // Do nothing if the list has length 0 or 1.
  if (_M_node->_M_next != _M_node &&
      ((_Node*) (_M_node->_M_next))->_M_next != _M_node) {
    iterator __first = begin();
    ++__first;
    while (__first != end()) {
      iterator __old = __first;
      ++__first;
      transfer(begin(), __old, __first);
    }
  }
}    

template <class _Tp, class _Alloc>
void list<_Tp, _Alloc>::sort()
{
  // Do nothing if the list has length 0 or 1.
  if (_M_node->_M_next != _M_node &&
      ((_Node*) (_M_node->_M_next))->_M_next != _M_node) {
    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]);
  }
}

#ifdef __STL_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;
      transfer(__first1, __first2, ++__next);
      __first2 = __next;
    }
    else
      ++__first1;
  if (__first2 != __last2) transfer(__last1, __first2, __last2);
}

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_next != _M_node &&
      ((_Node*) (_M_node->_M_next))->_M_next != _M_node) {
    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]);
  }
}

#endif /* __STL_MEMBER_TEMPLATES */

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

__STL_END_NAMESPACE 

#endif /* __SGI_STL_INTERNAL_LIST_H */

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
狠狠色丁香久久婷婷综合_中| 欧美群妇大交群中文字幕| 91丨九色丨黑人外教| 日韩欧美区一区二| 亚洲国产sm捆绑调教视频 | 日韩av电影免费观看高清完整版在线观看| 激情五月婷婷综合| 91精品婷婷国产综合久久竹菊| 国产精品久久福利| 国产精品一二一区| 精品少妇一区二区三区在线视频| 亚洲午夜久久久久| 色综合天天做天天爱| 国产精品你懂的| 国产精品一区二区在线播放 | 在线观看av不卡| 亚洲视频综合在线| 国产精品中文有码| 精品国产青草久久久久福利| 日本美女一区二区三区视频| 色偷偷一区二区三区| 亚洲欧洲精品一区二区三区| 国产99久久久久| 国产欧美精品区一区二区三区 | 久久久久久久综合日本| 激情另类小说区图片区视频区| 欧美精品在线视频| 午夜精品久久一牛影视| 在线观看免费亚洲| 青青草97国产精品免费观看无弹窗版| 色综合天天综合网国产成人综合天| 精品无码三级在线观看视频 | 欧美va亚洲va国产综合| 午夜精品久久久久久久久久 | 亚洲第一激情av| 欧美日韩一区中文字幕| 亚洲国产成人精品视频| 欧美群妇大交群中文字幕| 午夜精品一区在线观看| 日韩三级在线免费观看| 国产综合色视频| 国产日韩精品一区二区三区| 成人黄色小视频| 亚洲网友自拍偷拍| 91精品免费在线观看| 精品在线免费观看| 国产日本一区二区| 色国产精品一区在线观看| 亚洲成人久久影院| 欧美sm极限捆绑bd| 成人综合在线网站| 亚洲另类色综合网站| 6080午夜不卡| 国产成人精品一区二| 亚洲精品第一国产综合野| 欧美一级片在线观看| 韩国成人精品a∨在线观看| 国产精品伦一区| 777xxx欧美| 成人一区二区三区视频| 亚洲高清免费在线| 久久久久久久久97黄色工厂| 99热99精品| 蜜桃久久精品一区二区| 中文子幕无线码一区tr| 7777精品伊人久久久大香线蕉| 国产精品一级黄| 亚洲国产精品一区二区www | 成人黄色av电影| 婷婷综合久久一区二区三区| 久久综合久久鬼色中文字| 91丨porny丨首页| 国内外成人在线| 亚洲一区免费在线观看| 国产欧美日韩精品a在线观看| 欧美亚男人的天堂| 高清免费成人av| 免费av网站大全久久| 中文字幕一区二区在线观看| 精品久久久久久久久久久久包黑料| 色综合久久中文综合久久牛| 精品亚洲porn| 天堂一区二区在线免费观看| 亚洲视频中文字幕| 国产亚洲一本大道中文在线| 欧美一区二区私人影院日本| 日本道免费精品一区二区三区| 国产精品系列在线播放| 天天色综合天天| 亚洲精品高清视频在线观看| 国产欧美一区二区在线| 精品久久久久99| 欧美一区二区黄色| 欧美三级三级三级| 欧美自拍偷拍一区| 成人av在线一区二区| 国产一区二区三区四区五区入口| 精品一区二区三区免费毛片爱| 亚洲一区二区五区| 夜夜爽夜夜爽精品视频| 国产精品国产三级国产三级人妇 | 欧美日韩久久久久久| 91高清视频在线| 一本一本久久a久久精品综合麻豆| 国产精品888| 国产美女在线精品| 狠狠色丁香婷综合久久| 国产呦精品一区二区三区网站| 日本不卡不码高清免费观看| 亚洲成人av电影| 日韩电影一区二区三区四区| 午夜在线成人av| 日本欧美久久久久免费播放网| 天堂成人国产精品一区| 午夜精品久久久久久久蜜桃app| 午夜精品一区二区三区免费视频| 亚洲成人综合网站| 免费精品视频最新在线| 美女视频第一区二区三区免费观看网站| 天天免费综合色| 日本v片在线高清不卡在线观看| 日本vs亚洲vs韩国一区三区| 久久福利资源站| 精品一区二区免费| 国产不卡高清在线观看视频| 成人国产免费视频| 在线亚洲高清视频| 欧美日韩高清一区二区不卡 | 国产精品全国免费观看高清| 国产精品动漫网站| 亚洲综合成人网| 男男视频亚洲欧美| 国产永久精品大片wwwapp| 成人综合婷婷国产精品久久免费| 91麻豆自制传媒国产之光| 欧美亚洲尤物久久| 日韩欧美在线不卡| 国产精品污网站| 一区二区欧美精品| 久久国产尿小便嘘嘘| 成年人网站91| 91精品中文字幕一区二区三区| ww亚洲ww在线观看国产| 中文字幕一区二区三区四区不卡| 亚洲一区二区中文在线| 麻豆成人av在线| www.激情成人| 91精品国产91热久久久做人人| 中文字幕不卡在线播放| 婷婷一区二区三区| av电影在线观看一区| 91麻豆精品久久久久蜜臀| 中文字幕乱码久久午夜不卡 | 一区二区三区中文字幕| 捆绑调教美女网站视频一区| av不卡一区二区三区| 欧美一级精品大片| 亚洲欧美一区二区三区国产精品| 麻豆精品精品国产自在97香蕉| 99精品视频在线免费观看| 日韩午夜小视频| 一区二区三区成人| 国产成人免费视频网站 | 国产日韩一级二级三级| 天天色天天爱天天射综合| 成人av网在线| 久久久久久久综合狠狠综合| 偷拍日韩校园综合在线| 日本韩国一区二区三区| 国产日韩欧美激情| 激情文学综合丁香| 欧美精品vⅰdeose4hd| 亚洲少妇30p| 成人国产精品免费网站| 亚洲一区二区三区中文字幕 | 欧美性受xxxx黑人xyx| 国产欧美精品一区| 国产在线精品一区在线观看麻豆| 欧美日韩在线播放| 一区二区三区四区不卡在线| 成人黄色网址在线观看| 国产亚洲欧美激情| 国产麻豆日韩欧美久久| 日韩欧美亚洲另类制服综合在线| 亚洲成人免费看| 欧美日韩精品系列| 亚洲国产乱码最新视频| 精品视频1区2区| 亚洲bt欧美bt精品| 欧美在线观看视频一区二区三区| 亚洲欧洲日韩av| 99在线精品视频| 国产精品欧美一区喷水| 高清国产午夜精品久久久久久| 国产午夜精品福利| 岛国精品一区二区| 亚洲视频一区在线观看| 日本韩国欧美三级| 亚洲黄色小说网站| 欧美三级三级三级|