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

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

?? stl_deque.h

?? 粗慥集成算法集合 ,并有詳細的文檔資料和測試數據處
?? H
?? 第 1 頁 / 共 3 頁
字號:
public:
  typedef _Tp value_type;
  typedef typename _Alloc_traits<_Tp,_Alloc>::allocator_type  allocator_type;
  typedef typename _Alloc_traits<_Tp*, _Alloc>::allocator_type _Map_alloc_type;

  typedef _Buf_size_traits <_Tp, __bufsiz > __buf_traits;

  typedef _Deque_iterator<_Tp, _Nonconst_traits<_Tp>,__buf_traits> iterator;
  typedef _Deque_iterator<_Tp, _Const_traits<_Tp>, __buf_traits>   const_iterator;

  _Deque_base(const allocator_type& __a, size_t __num_elements)
    : _M_start(), _M_finish(), _M_map(__STL_CONVERT_ALLOCATOR(__a, _Tp*), (_Tp**)0),
      _M_map_size(__a, (size_t)0) {
	_M_initialize_map(__num_elements);
  }
  _Deque_base(const allocator_type& __a)
    : _M_start(), _M_finish(), _M_map(__STL_CONVERT_ALLOCATOR(__a, _Tp*), (_Tp**)0), 
      _M_map_size(__a, (size_t)0) {
  }
  ~_Deque_base();    
  allocator_type get_allocator() const { return _M_map_size; }

protected:
  void _M_initialize_map(size_t);
  void _M_create_nodes(_Tp** __nstart, _Tp** __nfinish);
  void _M_destroy_nodes(_Tp** __nstart, _Tp** __nfinish);
  enum { _S_initial_map_size = 8 };

protected:
  iterator _M_start;
  iterator _M_finish;
  _STL_alloc_proxy<value_type**, value_type*, _Map_alloc_type>  _M_map;
  _STL_alloc_proxy<size_t, value_type,  allocator_type>   _M_map_size;  
};


// See __deque_buf_size().  The only reason that the default value is 0
//  is as a workaround for bugs in the way that some compilers handle
//  constant expressions.
# if defined ( __STL_NO_DEFAULT_NON_TYPE_PARAM )
template <class _Tp, class _Alloc, size_t __bufsiz> 
# else
template <class _Tp, __STL_DEFAULT_ALLOCATOR_SELECT(_Tp),
  __DFL_NON_TYPE_PARAM(size_t, __bufsiz, 0)>
# endif 
class deque : protected _Deque_base<_Tp, _Alloc, __bufsiz> {
  typedef _Deque_base<_Tp, _Alloc, __bufsiz> _Base;
  typedef deque<_Tp, _Alloc, __bufsiz> _Self;
public:                         // Basic types
  typedef _Tp value_type;
  typedef value_type* pointer;
  typedef const value_type* const_pointer;
  typedef value_type& reference;
  typedef const value_type& const_reference;
  typedef size_t size_type;
  typedef ptrdiff_t difference_type;

  typedef typename _Base::allocator_type allocator_type;

public:                         // Iterators
  typedef typename _Base::iterator       iterator;
  typedef typename _Base::const_iterator const_iterator;

#if defined ( __STL_CLASS_PARTIAL_SPECIALIZATION ) && \
! defined (__STL_PARTIAL_SPECIALIZATION_BUG)
  typedef __STLPORT_STD::reverse_iterator<const_iterator> const_reverse_iterator;
  typedef __STLPORT_STD::reverse_iterator<iterator> reverse_iterator;
#else /* __STL_CLASS_PARTIAL_SPECIALIZATION */
# if defined (__STL_MSVC50_COMPATIBILITY)
    typedef __STLPORT_STD::reverse_iterator<const_iterator, value_type, const_reference, 
    const value_type*, difference_type>  const_reverse_iterator;
    typedef __STLPORT_STD::reverse_iterator<iterator, value_type, reference, pointer, 
        difference_type> reverse_iterator; 
# else
  typedef __STLPORT_STD::reverse_iterator<const_iterator, value_type, const_reference, 
                           difference_type>  
          const_reverse_iterator;
  typedef __STLPORT_STD::reverse_iterator<iterator, value_type, reference, difference_type>
          reverse_iterator; 
# endif /* __STL_MSVC50_COMPATIBILITY */
#endif /* __STL_CLASS_PARTIAL_SPECIALIZATION */

protected:                      // Internal typedefs
  typedef pointer* _Map_pointer;

  typedef _Buf_size_traits < _Tp, __bufsiz > __buf_traits;

protected:
#if defined( __STL_HAS_NAMESPACES )
  __STL_USING_BASE_MEMBER _Deque_base<_Tp, _Alloc, __bufsiz>::_M_initialize_map;
  __STL_USING_BASE_MEMBER _Deque_base<_Tp, _Alloc, __bufsiz>::_M_create_nodes;
# ifndef __STL_DEBUG
  __STL_USING_BASE_MEMBER _Deque_base<_Tp, _Alloc, __bufsiz>::_M_destroy_nodes;
# endif
  __STL_USING_BASE_MEMBER _Deque_base<_Tp, _Alloc, __bufsiz>::_M_map;
  __STL_USING_BASE_MEMBER _Deque_base<_Tp, _Alloc, __bufsiz>::_M_map_size;
  __STL_USING_BASE_MEMBER _Deque_base<_Tp, _Alloc, __bufsiz>::_M_start;
  __STL_USING_BASE_MEMBER _Deque_base<_Tp, _Alloc, __bufsiz>::_M_finish;
#endif /* __STL_HAS_NAMESPACES */
# if defined (__STL_DEBUG)
protected:
  __owned_list _M_iter_list;
  void _Init_bounds() {
    _M_orphan_start();
    _M_orphan_finish();
  }
  void _Invalidate_iterator(const iterator& __it) { 
    __invalidate_iterator(&_M_iter_list,__it);
  }
  void _Invalidate_all() {
      _M_iter_list._Invalidate_all();
  }
  void _M_destroy_nodes(_Tp** __nstart, _Tp** __nfinish) {
    _Base::_M_destroy_nodes(__nstart, __nfinish);
    // to simplify unwind handling
      _M_finish._M_unsafe= false;
      _M_start._M_unsafe = false;
  }
  void _M_orphan_start() {
    _M_iter_list._Orphan(_M_start);
    _M_start._M_unsafe = false;
  }
  void _M_orphan_finish() {
    _M_iter_list._Orphan(_M_finish);
    _M_finish._M_unsafe= false;
  }
# endif
public:                         // Basic accessors
  iterator begin() { return _M_start; }
  iterator end() { return _M_finish; }
  const_iterator begin() const { return *(const const_iterator*)&_M_start; }
  const_iterator end() const { return *(const const_iterator*)&_M_finish; }

  reverse_iterator rbegin() { return reverse_iterator(_M_finish); }
  reverse_iterator rend() { return reverse_iterator(_M_start); }
  const_reverse_iterator rbegin() const 
    { return const_reverse_iterator(_M_finish); }
  const_reverse_iterator rend() const 
    { return const_reverse_iterator(_M_start); }

  reference operator[](size_type __n)
    { return _M_start[difference_type(__n)]; }
  const_reference operator[](size_type __n) const 
    { return _M_start[difference_type(__n)]; }

#ifdef __STL_THROW_RANGE_ERRORS
  void _M_range_check(size_type __n) const {
    if (__n >= this->size())
      __stl_throw_range_error("deque");
  }

  reference at(size_type __n)
    { _M_range_check(__n); return (*this)[__n]; }
  const_reference at(size_type __n) const
    { _M_range_check(__n); return (*this)[__n]; }
#endif /* __STL_THROW_RANGE_ERRORS */

  reference front() { return *_M_start; }
  reference back() {
    iterator __tmp = _M_finish;
    --__tmp;
    return *__tmp;
  }
  const_reference front() const { return *_M_start; }
  const_reference back() const {
    const_iterator __tmp = _M_finish;
    --__tmp;
    return *__tmp;
  }

  size_type size() const { return _M_finish - _M_start; }
  size_type max_size() const { return size_type(-1); }
  bool empty() const { return _M_finish == _M_start; }

public:                         // Constructor, destructor.
  explicit deque(const allocator_type& __a = __STL_ALLOC_INSTANCE(allocator_type)) 
    : _Deque_base<_Tp, _Alloc, __bufsiz>(__a, 0) {
    __stl_debug_do(_M_iter_list._Safe_init(&_M_start));
    __stl_debug_do(_Init_bounds());
}
  deque(const _Self& __x) : 
    _Deque_base<_Tp, _Alloc, __bufsiz>(__x.get_allocator(), __x.size()) 
    { 
      __stl_debug_do(_M_iter_list._Safe_init(&_M_start));
      __stl_debug_do(_Init_bounds());
      uninitialized_copy(__x.begin(), __x.end(), _M_start); 
    }

  deque(size_type __n, const value_type& __value,
        const allocator_type& __a = __STL_ALLOC_INSTANCE(allocator_type)) : 
    _Deque_base<_Tp, _Alloc, __bufsiz>(__a, __n)
    { _M_fill_initialize(__value); }
  // int,long variants may be needed 
  explicit deque(size_type __n) : _Deque_base<_Tp, _Alloc, __bufsiz>(allocator_type(), __n)
    { _M_fill_initialize(value_type()); }

#ifdef __STL_MEMBER_TEMPLATES

  // Check whether it's an integral type.  If so, it's not an iterator.
  template <class _InputIterator>
  deque(_InputIterator __first, _InputIterator __last,
        const allocator_type& __a = __STL_ALLOC_INSTANCE(allocator_type)) : 
    _Deque_base<_Tp, _Alloc, __bufsiz>(__a) {
    typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
    _M_initialize_dispatch(__first, __last, _Integral());
  }

  template <class _Integer>
  void _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) {
    _M_initialize_map(__n);
    _M_fill_initialize(__x);
  }

  template <class _InputIter>
  void _M_initialize_dispatch(_InputIter __first, _InputIter __last,
                              __false_type) {
    _M_range_initialize(__first, __last, __ITERATOR_CATEGORY(__first));
  }

#else /* __STL_MEMBER_TEMPLATES */

  deque(const value_type* __first, const value_type* __last,
        const allocator_type& __a = __STL_ALLOC_INSTANCE(allocator_type)) 
    : _Deque_base<_Tp, _Alloc, __bufsiz>(__a, __last - __first)
    { 
      __stl_debug_do(_M_iter_list._Safe_init(&_M_start));
      __stl_debug_do(_Init_bounds());
      uninitialized_copy(__first, __last, _M_start); 
    }
  deque(const_iterator __first, const_iterator __last,
        const allocator_type& __a = __STL_ALLOC_INSTANCE(allocator_type)) 
    : _Deque_base<_Tp, _Alloc, __bufsiz>(__a, __last - __first)
    { 
      __stl_debug_do(_M_iter_list._Safe_init(&_M_start));
      __stl_debug_do(_Init_bounds());
      uninitialized_copy(__first, __last, _M_start); 
    }

#endif /* __STL_MEMBER_TEMPLATES */

  ~deque() { 
    destroy(_M_start, _M_finish); 
  }

  _Self& operator= (const _Self& __x);

  void swap(_Self& __x) {
    __STLPORT_STD::swap(_M_start, __x._M_start);
    __STLPORT_STD::swap(_M_finish, __x._M_finish);
    __STLPORT_STD::swap(_M_map, __x._M_map);
    __STLPORT_STD::swap(_M_map_size, __x._M_map_size);
    __stl_debug_do(_M_iter_list._Swap_owners(__x._M_iter_list));
  }

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 _M_fill_assign(size_type __n, const _Tp& __val) {
    if (__n > size()) {
      fill(begin(), end(), __val);
      insert(end(), __n - size(), __val);
    }
    else {
      erase(begin() + __n, end());
      fill(begin(), end(), __val);
    }
  }

  void assign(size_type __n, const _Tp& __val) {
    _M_fill_assign(__n, __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());
  }

private:                        // helper functions for assign() 

  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) {
    _M_assign_aux(__first, __last, __ITERATOR_CATEGORY(__first));
  }

  template <class _InputIter>
  void _M_assign_aux(_InputIter __first, _InputIter __last, input_iterator_tag) {
    iterator __cur = begin();
    for ( ; __first != __last && __cur != end(); ++__cur, ++__first)
      *__cur = *__first;
    if (__first == __last)
      erase(__cur, end());
    else
      insert(end(), __first, __last);
  }

  template <class _ForwardIterator>
  void _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,
                     forward_iterator_tag) {
    size_type __len = 0;
    distance(__first, __last, __len);
    if (__len > size()) {
      _ForwardIterator __mid = __first;
      advance(__mid, size());
      copy(__first, __mid, begin());
      insert(end(), __mid, __last);
    }
    else
      erase(copy(__first, __last, begin()), end());
  }

#endif /* __STL_MEMBER_TEMPLATES */

public:                         // push_* and pop_*
  
  void push_back(const value_type& __t) {
    if (_M_finish._M_cur != _M_finish._M_last - 1) {
      construct(_M_finish._M_cur, __t);
      ++_M_finish._M_cur;
    }
    else
      _M_push_back_aux(__t);
    __stl_debug_do(_Invalidate_all());
  }

  void push_back() {
    if (_M_finish._M_cur != _M_finish._M_last - 1) {
      construct(_M_finish._M_cur);
      ++_M_finish._M_cur;
    }
    else
      _M_push_back_aux();
    __stl_debug_do(_Invalidate_all());
  }

  void push_front(const value_type& __t) {
    if (_M_start._M_cur != _M_start._M_first) {
      construct(_M_start._M_cur - 1, __t);
      --_M_start._M_cur;
    }
    else
      _M_push_front_aux(__t);
    __stl_debug_do(_Invalidate_all());
  }

  void push_front() {
    if (_M_start._M_cur != _M_start._M_first) {
      construct(_M_start._M_cur - 1);
      --_M_start._M_cur;
    }
    else
      _M_push_front_aux();
    __stl_debug_do(_Invalidate_all());
  }


  void pop_back() {
    __stl_debug_do(_Invalidate_iterator(_M_finish));
    if (_M_finish._M_cur != _M_finish._M_first) {
      --_M_finish._M_cur;
      destroy(_M_finish._M_cur);
    }
    else
      _M_pop_back_aux();
  }

  void pop_front() {
    __stl_debug_do(_Invalidate_iterator(_M_start));        
    if (_M_start._M_cur != _M_start._M_last - 1) {
      destroy(_M_start._M_cur);
      ++_M_start._M_cur;
    }
    else 
      _M_pop_front_aux();
  }

public:                         // Insert

  iterator insert(iterator __position, const value_type& __x) {
    __stl_debug_check(__check_if_owner(&_M_iter_list, __position));
    if (__position._M_cur == _M_start._M_cur) {
      push_front(__x);
      return _M_start;
    }
    else if (__position._M_cur == _M_finish._M_cur) {
      push_back(__x);
      iterator __tmp = _M_finish;
      --__tmp;
      return __tmp;
    }
    else {
      return _M_insert_aux(__position, __x);
    }
  }

  iterator insert(iterator __position)
    { return insert(__position, value_type()); }

  void insert(iterator __pos, size_type __n, const value_type& __x) {
    _M_fill_insert(__pos, __n, __x);
  }

  void _M_fill_insert(iterator __pos, size_type __n, const value_type& __x);

#ifdef __STL_MEMBER_TEMPLATES  

  // Check whether it's an integral type.  If so, it's not an iterator.
  template <class _InputIterator>
  void insert(iterator __pos, _InputIterator __first, _InputIterator __last) {
    typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
    _M_insert_dispatch(__pos, __first, __last, _Integral());
  }

  template <class _Integer>
  void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x,
                          __true_type) {
    _M_fill_insert(__pos, (size_type) __n, (value_type) __x);
  }

  template <class _InputIterator>
  void _M_insert_dispatch(iterator __pos,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲欧美一级| 中文字幕一区二区三区不卡| 老司机精品视频线观看86| 91国产成人在线| 亚洲精品福利视频网站| 欧美影院精品一区| 久久超碰97中文字幕| 秋霞电影网一区二区| 国产亚洲一本大道中文在线| 久久久国际精品| 91小视频免费观看| 亚洲成在人线在线播放| 日韩欧美国产一区二区三区| 成人黄色在线看| 亚洲国产aⅴ天堂久久| 久久蜜桃av一区二区天堂| 精品国产污网站| 日本大香伊一区二区三区| 欧美性视频一区二区三区| 在线播放欧美女士性生活| 成人午夜电影久久影院| 日韩 欧美一区二区三区| 国产精品久久久久一区| 日韩欧美国产三级电影视频| 欧美大片日本大片免费观看| 久久久精品综合| 亚洲欧洲国产日本综合| 丁香六月综合激情| 99久久精品国产一区| 国产乱码精品一区二区三区忘忧草| 亚洲欧美综合另类在线卡通| 一区二区三区四区蜜桃| 国产精品乱人伦一区二区| 51午夜精品国产| 欧美曰成人黄网| 成人av在线影院| 欧美日韩亚洲综合一区| 色婷婷激情一区二区三区| 极品美女销魂一区二区三区| 亚洲成年人网站在线观看| 久久97超碰国产精品超碰| 一本大道久久a久久综合婷婷| 3751色影院一区二区三区| 国产亚洲欧美日韩日本| 天堂成人免费av电影一区| 亚洲国产精品久久一线不卡| 国内成+人亚洲+欧美+综合在线| 日韩高清欧美激情| 北岛玲一区二区三区四区| 成人少妇影院yyyy| 91精品国产91热久久久做人人| 欧美精选一区二区| 中文字幕一区二区三区在线不卡| 日本欧美一区二区在线观看| 成人av网站大全| 日韩欧美一级精品久久| 亚洲人成影院在线观看| 国产精品嫩草影院av蜜臀| 天天色综合天天| 九九九久久久精品| 欧美日韩在线综合| 中文字幕在线免费不卡| 极品美女销魂一区二区三区| 5858s免费视频成人| 亚洲欧美日韩国产成人精品影院 | 欧美一区二区三级| 亚洲同性同志一二三专区| 亚洲综合精品久久| 日本sm残虐另类| 欧美色中文字幕| 亚洲最大成人网4388xx| 成人精品鲁一区一区二区| 久久久综合精品| 久久99久久精品| 欧美一区二区成人| 日韩av在线免费观看不卡| 在线观看免费一区| 亚洲午夜电影在线观看| 欧美怡红院视频| 一个色妞综合视频在线观看| 在线视频中文字幕一区二区| 亚洲另类春色国产| 在线视频一区二区三区| 亚洲午夜私人影院| 欧美嫩在线观看| 国产亚洲精品资源在线26u| 国产在线精品视频| 色综合中文字幕| 精品日本一线二线三线不卡| 亚洲欧美综合另类在线卡通| 91在线观看美女| 亚洲一区二区中文在线| 在线视频一区二区免费| 日韩精品久久久久久| 国产丝袜美腿一区二区三区| 青青草国产精品97视觉盛宴| 精品动漫一区二区三区在线观看| 国产一区在线观看视频| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 4hu四虎永久在线影院成人| 免费视频一区二区| 国产日韩影视精品| 日本午夜一本久久久综合| 精品粉嫩超白一线天av| 成人高清在线视频| 午夜精品福利一区二区蜜股av| 欧美成人精品二区三区99精品| 国产成人综合网站| 久久人人爽人人爽| 91麻豆蜜桃一区二区三区| 日韩综合一区二区| 国产欧美一区二区精品婷婷| 欧美亚日韩国产aⅴ精品中极品| 久久成人免费电影| 中文字幕中文在线不卡住| 色综合中文字幕国产| 一级日本不卡的影视| 在线观看精品一区| 蜜芽一区二区三区| 欧美在线观看禁18| 婷婷中文字幕综合| 欧美成人a视频| 国产91在线观看| 久久久www成人免费毛片麻豆 | 国产成人av网站| 91麻豆精品国产自产在线观看一区 | 日韩av一级片| 久久嫩草精品久久久精品一| 成人激情开心网| 亚洲成人精品一区二区| 欧美性受极品xxxx喷水| 久久精品国产**网站演员| 国产精品成人在线观看 | 色综合天天综合色综合av| 97精品电影院| 亚洲成人精品影院| 日韩欧美激情四射| 欧美亚州韩日在线看免费版国语版| 蜜臀91精品一区二区三区| 欧美精彩视频一区二区三区| 色综合久久九月婷婷色综合| 裸体在线国模精品偷拍| 亚洲乱码日产精品bd| 久久蜜桃一区二区| 欧美高清视频一二三区| 不卡一卡二卡三乱码免费网站| 视频一区视频二区中文字幕| 精品福利一区二区三区免费视频| 欧美群妇大交群中文字幕| 成人禁用看黄a在线| 国产精品久久久久国产精品日日| 99久久精品国产毛片| 美国三级日本三级久久99| 亚洲欧美一区二区三区孕妇| 精品国精品自拍自在线| 欧美影视一区在线| 国产99久久久久| 九色综合狠狠综合久久| 亚洲成人激情自拍| 亚洲影院久久精品| 国产精品的网站| 亚洲欧美影音先锋| 国产欧美一区二区精品仙草咪| 欧美成人一区二区三区片免费| 在线视频亚洲一区| av在线播放成人| 天天射综合影视| 经典三级在线一区| 蜜桃精品在线观看| 麻豆国产精品视频| 秋霞午夜鲁丝一区二区老狼| 极品少妇一区二区三区精品视频| 美女精品一区二区| 免费欧美高清视频| 久久精品久久久精品美女| 亚欧色一区w666天堂| 激情五月激情综合网| 国产一区中文字幕| 亚洲永久免费av| 亚洲永久免费av| 亚洲欧洲精品一区二区三区| 中文字幕+乱码+中文字幕一区| 久久一二三国产| 韩国女主播成人在线| 一区二区三区中文字幕| 日韩成人一级片| 久久成人羞羞网站| 国产精品99久久久久久宅男| 成人18精品视频| 在线观看av不卡| 欧美一区二区三区不卡| 2020国产成人综合网| 中文字幕+乱码+中文字幕一区| ...xxx性欧美| 九九九久久久精品| 风流少妇一区二区| 91一区一区三区| 欧美日韩一区精品| 欧美一级片免费看| 国产精品三级久久久久三级|