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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? stl_vector.h

?? ISO_C++:C++_STL開發(fā)文檔
?? H
?? 第 1 頁 / 共 2 頁
字號:
/* * * Copyright (c) 1994 * Hewlett-Packard Company * * Permission to use, copy, modify, distribute and sell this software * and its documentation for any purpose is hereby granted without fee, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation.  Hewlett-Packard Company makes no * representations about the suitability of this software for any * purpose.  It is provided "as is" without express or implied warranty. * * * Copyright (c) 1996 * Silicon Graphics Computer Systems, Inc. * * Permission to use, copy, modify, distribute and sell this software * and its documentation for any purpose is hereby granted without fee, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation.  Silicon Graphics makes no * representations about the suitability of this software for any * purpose.  It is provided "as is" without express or implied warranty. *//* NOTE: This is an internal header file, included by other STL headers. *   You should not attempt to use it directly. */#ifndef __SGI_STL_INTERNAL_VECTOR_H#define __SGI_STL_INTERNAL_VECTOR_H#include <concept_checks.h>__STL_BEGIN_NAMESPACE #if defined(__sgi) && !defined(__GNUC__) && (_MIPS_SIM != _MIPS_SIM_ABI32)#pragma set woff 1174#pragma set woff 1375#endif// The vector base class serves two purposes.  First, its constructor// and destructor allocate (but don't initialize) storage.  This makes// exception safety easier.  Second, the base class encapsulates all of// the differences between SGI-style allocators and standard-conforming// allocators.#ifdef __STL_USE_STD_ALLOCATORS// Base class for ordinary allocators.template <class _Tp, class _Allocator, bool _IsStatic>class _Vector_alloc_base {public:  typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type          allocator_type;  allocator_type get_allocator() const { return _M_data_allocator; }  _Vector_alloc_base(const allocator_type& __a)    : _M_data_allocator(__a), _M_start(0), _M_finish(0), _M_end_of_storage(0)   {}  protected:  allocator_type _M_data_allocator;  _Tp* _M_start;  _Tp* _M_finish;  _Tp* _M_end_of_storage;  _Tp* _M_allocate(size_t __n)    { return _M_data_allocator.allocate(__n); }  void _M_deallocate(_Tp* __p, size_t __n)    { if (__p) _M_data_allocator.deallocate(__p, __n); }};// Specialization for allocators that have the property that we don't// actually have to store an allocator object.  template <class _Tp, class _Allocator>class _Vector_alloc_base<_Tp, _Allocator, true> {public:  typedef typename _Alloc_traits<_Tp, _Allocator>::allocator_type          allocator_type;  allocator_type get_allocator() const { return allocator_type(); }  _Vector_alloc_base(const allocator_type&)    : _M_start(0), _M_finish(0), _M_end_of_storage(0)   {}  protected:  _Tp* _M_start;  _Tp* _M_finish;  _Tp* _M_end_of_storage;  typedef typename _Alloc_traits<_Tp, _Allocator>::_Alloc_type _Alloc_type;  _Tp* _M_allocate(size_t __n)    { return _Alloc_type::allocate(__n); }  void _M_deallocate(_Tp* __p, size_t __n)    { _Alloc_type::deallocate(__p, __n);}};template <class _Tp, class _Alloc>struct _Vector_base  : public _Vector_alloc_base<_Tp, _Alloc,                              _Alloc_traits<_Tp, _Alloc>::_S_instanceless>{  typedef _Vector_alloc_base<_Tp, _Alloc,                              _Alloc_traits<_Tp, _Alloc>::_S_instanceless>          _Base;  typedef typename _Base::allocator_type allocator_type;  _Vector_base(const allocator_type& __a) : _Base(__a) {}  _Vector_base(size_t __n, const allocator_type& __a) : _Base(__a) {    _M_start = _M_allocate(__n);    _M_finish = _M_start;    _M_end_of_storage = _M_start + __n;  }  ~_Vector_base() { _M_deallocate(_M_start, _M_end_of_storage - _M_start); }};    #else /* __STL_USE_STD_ALLOCATORS */template <class _Tp, class _Alloc> class _Vector_base {public:  typedef _Alloc allocator_type;  allocator_type get_allocator() const { return allocator_type(); }  _Vector_base(const _Alloc&)    : _M_start(0), _M_finish(0), _M_end_of_storage(0) {}  _Vector_base(size_t __n, const _Alloc&)    : _M_start(0), _M_finish(0), _M_end_of_storage(0)   {    _M_start = _M_allocate(__n);    _M_finish = _M_start;    _M_end_of_storage = _M_start + __n;  }  ~_Vector_base() { _M_deallocate(_M_start, _M_end_of_storage - _M_start); }protected:  _Tp* _M_start;  _Tp* _M_finish;  _Tp* _M_end_of_storage;  typedef simple_alloc<_Tp, _Alloc> _M_data_allocator;  _Tp* _M_allocate(size_t __n)    { return _M_data_allocator::allocate(__n); }  void _M_deallocate(_Tp* __p, size_t __n)     { _M_data_allocator::deallocate(__p, __n); }};#endif /* __STL_USE_STD_ALLOCATORS */template <class _Tp, class _Alloc = __STL_DEFAULT_ALLOCATOR(_Tp) >class vector : protected _Vector_base<_Tp, _Alloc> {  // requirements:  __STL_CLASS_REQUIRES(_Tp, _Assignable);private:  typedef _Vector_base<_Tp, _Alloc> _Base;public:  typedef _Tp value_type;  typedef value_type* pointer;  typedef const value_type* const_pointer;  typedef value_type* iterator;  typedef const value_type* const_iterator;  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;  allocator_type get_allocator() const { return _Base::get_allocator(); }#ifdef __STL_CLASS_PARTIAL_SPECIALIZATION  typedef reverse_iterator<const_iterator> const_reverse_iterator;  typedef reverse_iterator<iterator> reverse_iterator;#else /* __STL_CLASS_PARTIAL_SPECIALIZATION */  typedef reverse_iterator<const_iterator, value_type, const_reference,                            difference_type>  const_reverse_iterator;  typedef reverse_iterator<iterator, value_type, reference, difference_type>          reverse_iterator;#endif /* __STL_CLASS_PARTIAL_SPECIALIZATION */protected:#ifdef __STL_HAS_NAMESPACES  using _Base::_M_allocate;  using _Base::_M_deallocate;  using _Base::_M_start;  using _Base::_M_finish;  using _Base::_M_end_of_storage;#endif /* __STL_HAS_NAMESPACES */protected:  void _M_insert_aux(iterator __position, const _Tp& __x);  void _M_insert_aux(iterator __position);public:  iterator begin() { return _M_start; }  const_iterator begin() const { return _M_start; }  iterator end() { return _M_finish; }  const_iterator end() const { return _M_finish; }  reverse_iterator rbegin()    { return reverse_iterator(end()); }  const_reverse_iterator rbegin() const    { return const_reverse_iterator(end()); }  reverse_iterator rend()    { return reverse_iterator(begin()); }  const_reverse_iterator rend() const    { return const_reverse_iterator(begin()); }  size_type size() const    { return size_type(end() - begin()); }  size_type max_size() const    { return size_type(-1) / sizeof(_Tp); }  size_type capacity() const    { return size_type(_M_end_of_storage - begin()); }  bool empty() const    { return begin() == end(); }  reference operator[](size_type __n) { return *(begin() + __n); }  const_reference operator[](size_type __n) const { return *(begin() + __n); }#ifdef __STL_THROW_RANGE_ERRORS  void _M_range_check(size_type __n) const {    if (__n >= this->size())      __stl_throw_range_error("vector");  }  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 */  explicit vector(const allocator_type& __a = allocator_type())    : _Base(__a) {}  vector(size_type __n, const _Tp& __value,         const allocator_type& __a = allocator_type())     : _Base(__n, __a)    { _M_finish = uninitialized_fill_n(_M_start, __n, __value); }  explicit vector(size_type __n)    : _Base(__n, allocator_type())    { _M_finish = uninitialized_fill_n(_M_start, __n, _Tp()); }  vector(const vector<_Tp, _Alloc>& __x)     : _Base(__x.size(), __x.get_allocator())    { _M_finish = uninitialized_copy(__x.begin(), __x.end(), _M_start); }#ifdef __STL_MEMBER_TEMPLATES  // Check whether it's an integral type.  If so, it's not an iterator.  template <class _InputIterator>  vector(_InputIterator __first, _InputIterator __last,         const allocator_type& __a = allocator_type()) : _Base(__a) {    typedef typename _Is_integer<_InputIterator>::_Integral _Integral;    _M_initialize_aux(__first, __last, _Integral());  }  template <class _Integer>  void _M_initialize_aux(_Integer __n, _Integer __value, __true_type) {    _M_start = _M_allocate(__n);    _M_end_of_storage = _M_start + __n;     _M_finish = uninitialized_fill_n(_M_start, __n, __value);  }  template <class _InputIterator>  void _M_initialize_aux(_InputIterator __first, _InputIterator __last,                         __false_type) {    _M_range_initialize(__first, __last, __ITERATOR_CATEGORY(__first));  }#else  vector(const _Tp* __first, const _Tp* __last,         const allocator_type& __a = allocator_type())    : _Base(__last - __first, __a)     { _M_finish = uninitialized_copy(__first, __last, _M_start); }#endif /* __STL_MEMBER_TEMPLATES */  ~vector() { destroy(_M_start, _M_finish); }  vector<_Tp, _Alloc>& operator=(const vector<_Tp, _Alloc>& __x);  void reserve(size_type __n) {    if (capacity() < __n) {      const size_type __old_size = size();      iterator __tmp = _M_allocate_and_copy(__n, _M_start, _M_finish);      destroy(_M_start, _M_finish);      _M_deallocate(_M_start, _M_end_of_storage - _M_start);      _M_start = __tmp;      _M_finish = __tmp + __old_size;      _M_end_of_storage = _M_start + __n;    }  }  // 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 _InputIter>  void _M_assign_dispatch(_InputIter __first, _InputIter __last, __false_type)    { _M_assign_aux(__first, __last, __ITERATOR_CATEGORY(__first)); }  template <class _InputIterator>  void _M_assign_aux(_InputIterator __first, _InputIterator __last,                     input_iterator_tag);  template <class _ForwardIterator>  void _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,                     forward_iterator_tag); #endif /* __STL_MEMBER_TEMPLATES */  reference front() { return *begin(); }  const_reference front() const { return *begin(); }  reference back() { return *(end() - 1); }  const_reference back() const { return *(end() - 1); }  void push_back(const _Tp& __x) {    if (_M_finish != _M_end_of_storage) {      construct(_M_finish, __x);      ++_M_finish;    }    else      _M_insert_aux(end(), __x);  }  void push_back() {    if (_M_finish != _M_end_of_storage) {      construct(_M_finish);      ++_M_finish;    }    else      _M_insert_aux(end());  }  void swap(vector<_Tp, _Alloc>& __x) {    __STD::swap(_M_start, __x._M_start);    __STD::swap(_M_finish, __x._M_finish);    __STD::swap(_M_end_of_storage, __x._M_end_of_storage);  }  iterator insert(iterator __position, const _Tp& __x) {    size_type __n = __position - begin();    if (_M_finish != _M_end_of_storage && __position == end()) {      construct(_M_finish, __x);      ++_M_finish;    }    else      _M_insert_aux(__position, __x);    return begin() + __n;  }  iterator insert(iterator __position) {    size_type __n = __position - begin();    if (_M_finish != _M_end_of_storage && __position == end()) {      construct(_M_finish);      ++_M_finish;    }    else      _M_insert_aux(__position);    return begin() + __n;  }#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 __val,                          __true_type)    { _M_fill_insert(__pos, (size_type) __n, (_Tp) __val); }  template <class _InputIterator>  void _M_insert_dispatch(iterator __pos,                          _InputIterator __first, _InputIterator __last,                          __false_type) {    _M_range_insert(__pos, __first, __last, __ITERATOR_CATEGORY(__first));  }#else /* __STL_MEMBER_TEMPLATES */  void insert(iterator __position,              const_iterator __first, const_iterator __last);#endif /* __STL_MEMBER_TEMPLATES */  void insert (iterator __pos, size_type __n, const _Tp& __x)    { _M_fill_insert(__pos, __n, __x); }  void _M_fill_insert (iterator __pos, size_type __n, const _Tp& __x);  void pop_back() {    --_M_finish;    destroy(_M_finish);  }  iterator erase(iterator __position) {    if (__position + 1 != end())      copy(__position + 1, _M_finish, __position);    --_M_finish;    destroy(_M_finish);    return __position;  }  iterator erase(iterator __first, iterator __last) {    iterator __i = copy(__last, _M_finish, __first);    destroy(__i, _M_finish);    _M_finish = _M_finish - (__last - __first);    return __first;  }  void resize(size_type __new_size, const _Tp& __x) {    if (__new_size < size())       erase(begin() + __new_size, end());    else      insert(end(), __new_size - size(), __x);  }  void resize(size_type __new_size) { resize(__new_size, _Tp()); }  void clear() { erase(begin(), end()); }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩美女一区二区| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲成年人影院| 国产99一区视频免费| 精品电影一区二区| 蜜臂av日日欢夜夜爽一区| 欧美福利一区二区| 精品午夜久久福利影院| 国产欧美日韩综合精品一区二区| 欧美bbbbb| 久久九九全国免费| 99久久伊人网影院| 久久免费视频色| 日本高清无吗v一区| 无吗不卡中文字幕| 国产亚洲一二三区| 久久久久国色av免费看影院| 欧美成人猛片aaaaaaa| 9人人澡人人爽人人精品| 成人高清免费观看| 久久精品国产精品亚洲红杏| 中文字幕精品一区| 精品国产sm最大网站免费看| 日韩三级在线免费观看| 色婷婷久久99综合精品jk白丝 | 欧美日韩国产综合一区二区| av激情亚洲男人天堂| 色婷婷综合久久久| 欧洲视频一区二区| 国产伦精一区二区三区| 日韩美女视频19| 精品国产伦一区二区三区观看方式 | 亚洲最新在线观看| 久久综合九色综合欧美就去吻| 欧美无乱码久久久免费午夜一区 | 国产一区二区福利视频| 懂色中文一区二区在线播放| 91麻豆swag| 91精品91久久久中77777| 久久精品这里都是精品| 亚洲综合小说图片| 一区二区三区视频在线看| 美女在线一区二区| 色综合天天性综合| av福利精品导航| 日韩欧美的一区| 欧美成人伊人久久综合网| 1区2区3区精品视频| 国产欧美一区二区精品性色 | 欧美顶级少妇做爰| 中文字幕免费观看一区| 免费成人av在线| 欧美日韩国产免费一区二区| 国产精品久久久久久久久晋中 | 99久久久免费精品国产一区二区| 欧美精品一级二级| 亚洲一区中文在线| 99热99精品| 国产视频亚洲色图| 91麻豆精品国产91久久久资源速度| 日韩欧美激情一区| 丝袜诱惑亚洲看片| 国产成人a级片| 欧美亚男人的天堂| 亚洲永久免费视频| 欧美日韩一级黄| 国产亚洲精久久久久久| 狠狠色综合色综合网络| 精品国产免费久久 | 日韩欧美成人激情| 国产精品理论片在线观看| 午夜精品久久一牛影视| 成人一级视频在线观看| 亚洲综合视频在线观看| 亚洲国产乱码最新视频| 一区二区三区不卡视频| 精品一区二区三区香蕉蜜桃 | 成人av一区二区三区| 亚洲自拍偷拍麻豆| 国产精品久久影院| 久久久久88色偷偷免费| 91精品麻豆日日躁夜夜躁| 色综合天天在线| 成人av资源站| 国产成人综合视频| 国产一区二区精品久久99| 国产精品久久久久影院色老大| 国产电影一区在线| 亚洲制服丝袜在线| 日韩午夜精品电影| 国产福利一区在线| 亚洲一二三区视频在线观看| 欧美精品黑人性xxxx| 国产成人超碰人人澡人人澡| 一区二区三区在线免费观看| 欧美mv日韩mv国产网站app| 成人性视频免费网站| 亚洲成a人v欧美综合天堂| 久久伊99综合婷婷久久伊| 在线精品视频一区二区三四| 久久精品国产亚洲一区二区三区| 国产欧美日韩在线观看| 欧美美女激情18p| 99免费精品在线| 国产成人av一区二区三区在线| 亚洲成人精品一区| 欧美国产国产综合| 日韩一级精品视频在线观看| 色久综合一二码| www.99精品| 国产麻豆精品在线| 国产在线不卡一区| 亚洲主播在线观看| 一区二区三区免费观看| 1000精品久久久久久久久| www成人在线观看| 精品国产在天天线2019| 欧美不卡123| 精品久久久久久久一区二区蜜臀| 日韩一区二区三区四区五区六区| 欧美性色黄大片| 欧美色区777第一页| 欧美伊人精品成人久久综合97| 在线一区二区三区四区五区 | 91精品国产福利在线观看| 天天综合网 天天综合色| 老汉av免费一区二区三区| 97se狠狠狠综合亚洲狠狠| 日本黄色一区二区| 2014亚洲片线观看视频免费| 中文字幕一区二区视频| 首页综合国产亚洲丝袜| 国产精品一区二区在线看| 亚洲国产一区二区a毛片| 琪琪一区二区三区| 成人午夜激情视频| 日韩欧美中文字幕一区| 综合亚洲深深色噜噜狠狠网站| 日韩精品国产欧美| voyeur盗摄精品| 精品精品国产高清a毛片牛牛| 亚洲丝袜自拍清纯另类| 免费高清不卡av| 欧美亚洲国产一区二区三区va| 国产拍欧美日韩视频二区| 五月综合激情网| 色综合久久久久网| 久久色中文字幕| 免费在线观看不卡| 欧美探花视频资源| 亚洲日本在线视频观看| 日本美女一区二区三区| 亚洲精品视频在线| 日韩不卡一区二区三区| 91污在线观看| 一区免费观看视频| 精品一区二区免费| 久久综合九色综合97婷婷女人| 亚洲精品美国一| 97精品久久久午夜一区二区三区| xvideos.蜜桃一区二区| 麻豆精品视频在线观看免费| 91精品国产综合久久精品图片| 亚洲激情在线播放| 欧美在线你懂的| 亚洲高清视频的网址| 欧美日韩视频不卡| 亚洲成人在线免费| 欧美日韩精品三区| 日本人妖一区二区| 久久久美女艺术照精彩视频福利播放| 国产伦理精品不卡| 亚洲日本青草视频在线怡红院| 91在线一区二区| 丝袜a∨在线一区二区三区不卡| 欧美一级在线视频| 成人免费视频视频| 亚洲韩国一区二区三区| 91精品国产综合久久精品麻豆| 精品一区二区三区蜜桃| 国产女人18水真多18精品一级做| 91在线视频观看| 久久精品免费观看| 亚洲精品国产a久久久久久| 欧美精品一区二区高清在线观看 | 国产一区二区三区香蕉| 亚洲免费av高清| 三级成人在线视频| 中文幕一区二区三区久久蜜桃| 亚洲精品国产成人久久av盗摄| 狠狠狠色丁香婷婷综合激情| 久久亚洲精华国产精华液 | 蜜桃视频一区二区三区在线观看 | 国产精品影视天天线| 久久狠狠亚洲综合| 麻豆精品久久久| 国内精品嫩模私拍在线| 久久不见久久见免费视频7| 日欧美一区二区| 日韩精品一二三四|