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

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

?? stl_rope.h

?? STL 最新源代碼
?? H
?? 第 1 頁 / 共 5 頁
字號:
    public:        typedef _CharT value_type;        typedef ptrdiff_t difference_type;        typedef size_t size_type;        typedef _CharT const_reference;        typedef const _CharT* const_pointer;        typedef _Rope_iterator<_CharT,_Alloc> iterator;        typedef _Rope_const_iterator<_CharT,_Alloc> const_iterator;        typedef _Rope_char_ref_proxy<_CharT,_Alloc> reference;        typedef _Rope_char_ptr_proxy<_CharT,_Alloc> pointer;        friend class _Rope_iterator<_CharT,_Alloc>;        friend class _Rope_const_iterator<_CharT,_Alloc>;        friend struct _Rope_RopeRep<_CharT,_Alloc>;        friend class _Rope_iterator_base<_CharT,_Alloc>;        friend class _Rope_char_ptr_proxy<_CharT,_Alloc>;        friend class _Rope_char_ref_proxy<_CharT,_Alloc>;        friend struct _Rope_RopeSubstring<_CharT,_Alloc>;    protected:        typedef _Rope_base<_CharT,_Alloc> _Base;        typedef typename _Base::allocator_type allocator_type;#       ifdef __STL_USE_NAMESPACES          using _Base::_M_tree_ptr;#       endif        typedef __GC_CONST _CharT* _Cstrptr;        static _CharT _S_empty_c_str[1];        static bool _S_is0(_CharT __c) { return __c == _S_eos((_CharT*)0); }        enum { _S_copy_max = 23 };                // For strings shorter than _S_copy_max, we copy to                // concatenate.        typedef _Rope_RopeRep<_CharT,_Alloc> _RopeRep;        typedef _Rope_RopeConcatenation<_CharT,_Alloc> _RopeConcatenation;        typedef _Rope_RopeLeaf<_CharT,_Alloc> _RopeLeaf;        typedef _Rope_RopeFunction<_CharT,_Alloc> _RopeFunction;        typedef _Rope_RopeSubstring<_CharT,_Alloc> _RopeSubstring;        // Retrieve a character at the indicated position.        static _CharT _S_fetch(_RopeRep* __r, size_type __pos);#       ifndef __GC            // Obtain a pointer to the character at the indicated position.            // The pointer can be used to change the character.            // If such a pointer cannot be produced, as is frequently the            // case, 0 is returned instead.            // (Returns nonzero only if all nodes in the path have a refcount            // of 1.)            static _CharT* _S_fetch_ptr(_RopeRep* __r, size_type __pos);#       endif        static bool _S_apply_to_pieces(                                // should be template parameter                                _Rope_char_consumer<_CharT>& __c,                                const _RopeRep* __r,                                size_t __begin, size_t __end);                                // begin and end are assumed to be in range.#       ifndef __GC          static void _S_unref(_RopeRep* __t)          {              _RopeRep::_S_unref(__t);          }          static void _S_ref(_RopeRep* __t)          {              _RopeRep::_S_ref(__t);          }#       else /* __GC */          static void _S_unref(_RopeRep*) {}          static void _S_ref(_RopeRep*) {}#       endif#       ifdef __GC            typedef _Rope_RopeRep<_CharT,_Alloc>* _Self_destruct_ptr;#       else            typedef _Rope_self_destruct_ptr<_CharT,_Alloc> _Self_destruct_ptr;#       endif        // _Result is counted in refcount.        static _RopeRep* _S_substring(_RopeRep* __base,                                    size_t __start, size_t __endp1);        static _RopeRep* _S_concat_char_iter(_RopeRep* __r,                                          const _CharT* __iter, size_t __slen);                // Concatenate rope and char ptr, copying __s.                // Should really take an arbitrary iterator.                // Result is counted in refcount.        static _RopeRep* _S_destr_concat_char_iter(_RopeRep* __r,                                          const _CharT* __iter, size_t __slen)                // As above, but one reference to __r is about to be                // destroyed.  Thus the pieces may be recycled if all                // relevent reference counts are 1.#           ifdef __GC                // We can't really do anything since refcounts are unavailable.                { return _S_concat_char_iter(__r, __iter, __slen); }#           else                ;#           endif        static _RopeRep* _S_concat(_RopeRep* __left, _RopeRep* __right);                // General concatenation on _RopeRep.  _Result                // has refcount of 1.  Adjusts argument refcounts.   public:        void apply_to_pieces( size_t __begin, size_t __end,                              _Rope_char_consumer<_CharT>& __c) const {            _S_apply_to_pieces(__c, _M_tree_ptr, __begin, __end);        }   protected:        static size_t _S_rounded_up_size(size_t __n) {            return _RopeLeaf::_S_rounded_up_size(__n);        }        static size_t _S_allocated_capacity(size_t __n) {            if (_S_is_basic_char_type((_CharT*)0)) {                return _S_rounded_up_size(__n) - 1;            } else {                return _S_rounded_up_size(__n);            }        }                        // Allocate and construct a RopeLeaf using the supplied allocator        // Takes ownership of s instead of copying.        static _RopeLeaf* _S_new_RopeLeaf(__GC_CONST _CharT *__s,                                          size_t __size, allocator_type __a)        {#           ifdef __STL_USE_STD_ALLOCATORS              _RopeLeaf* __space = _LAllocator(__a).allocate(1);#           else              _RopeLeaf* __space = _L_allocate(1);#           endif            return new(__space) _RopeLeaf(__s, __size, __a);        }        static _RopeConcatenation* _S_new_RopeConcatenation(                        _RopeRep* __left, _RopeRep* __right,                        allocator_type __a)        {#           ifdef __STL_USE_STD_ALLOCATORS              _RopeConcatenation* __space = _CAllocator(__a).allocate(1);#           else              _RopeConcatenation* __space = _C_allocate(1);#           endif            return new(__space) _RopeConcatenation(__left, __right, __a);        }        static _RopeFunction* _S_new_RopeFunction(char_producer<_CharT>* __f,                size_t __size, bool __d, allocator_type __a)        {#           ifdef __STL_USE_STD_ALLOCATORS              _RopeFunction* __space = _FAllocator(__a).allocate(1);#           else              _RopeFunction* __space = _F_allocate(1);#           endif            return new(__space) _RopeFunction(__f, __size, __d, __a);        }        static _RopeSubstring* _S_new_RopeSubstring(                _Rope_RopeRep<_CharT,_Alloc>* __b, size_t __s,                size_t __l, allocator_type __a)        {#           ifdef __STL_USE_STD_ALLOCATORS              _RopeSubstring* __space = _SAllocator(__a).allocate(1);#           else              _RopeSubstring* __space = _S_allocate(1);#           endif            return new(__space) _RopeSubstring(__b, __s, __l, __a);        }#       ifdef __STL_USE_STD_ALLOCATORS          static          _RopeLeaf* _S_RopeLeaf_from_unowned_char_ptr(const _CharT *__s,                       size_t __size, allocator_type __a)#         define __STL_ROPE_FROM_UNOWNED_CHAR_PTR(__s, __size, __a) \                _S_RopeLeaf_from_unowned_char_ptr(__s, __size, __a)     #       else          static          _RopeLeaf* _S_RopeLeaf_from_unowned_char_ptr2(const _CharT* __s,                                                        size_t __size)#         define __STL_ROPE_FROM_UNOWNED_CHAR_PTR(__s, __size, __a) \               _S_RopeLeaf_from_unowned_char_ptr2(__s, __size)#       endif        {            if (0 == __size) return 0;#           ifdef __STL_USE_STD_ALLOCATORS              _CharT* __buf = __a.allocate(_S_rounded_up_size(__size));#           else              _CharT* __buf = _Data_allocate(_S_rounded_up_size(__size));              allocator_type __a = allocator_type();#           endif            uninitialized_copy_n(__s, __size, __buf);            _S_cond_store_eos(__buf[__size]);            __STL_TRY {              return _S_new_RopeLeaf(__buf, __size, __a);            }            __STL_UNWIND(_RopeRep::__STL_FREE_STRING(__buf, __size, __a))        }                    // Concatenation of nonempty strings.        // Always builds a concatenation node.        // Rebalances if the result is too deep.        // Result has refcount 1.        // Does not increment left and right ref counts even though        // they are referenced.        static _RopeRep*        _S_tree_concat(_RopeRep* __left, _RopeRep* __right);        // Concatenation helper functions        static _RopeLeaf*        _S_leaf_concat_char_iter(_RopeLeaf* __r,                                 const _CharT* __iter, size_t __slen);                // Concatenate by copying leaf.                // should take an arbitrary iterator                // result has refcount 1.#       ifndef __GC          static _RopeLeaf* _S_destr_leaf_concat_char_iter                        (_RopeLeaf* __r, const _CharT* __iter, size_t __slen);          // A version that potentially clobbers __r if __r->_M_ref_count == 1.#       endif        private:        static size_t _S_char_ptr_len(const _CharT* __s);                        // slightly generalized strlen        rope(_RopeRep* __t, const allocator_type& __a = allocator_type())          : _Base(__t,__a) { }        // Copy __r to the _CharT buffer.        // Returns __buffer + __r->_M_size.        // Assumes that buffer is uninitialized.        static _CharT* _S_flatten(_RopeRep* __r, _CharT* __buffer);        // Again, with explicit starting position and length.        // Assumes that buffer is uninitialized.        static _CharT* _S_flatten(_RopeRep* __r,                                  size_t __start, size_t __len,                                  _CharT* __buffer);        static const unsigned long           _S_min_len[_RopeRep::_S_max_rope_depth + 1];        static bool _S_is_balanced(_RopeRep* __r)                { return (__r->_M_size >= _S_min_len[__r->_M_depth]); }        static bool _S_is_almost_balanced(_RopeRep* __r)                { return (__r->_M_depth == 0 ||                          __r->_M_size >= _S_min_len[__r->_M_depth - 1]); }        static bool _S_is_roughly_balanced(_RopeRep* __r)                { return (__r->_M_depth <= 1 ||                          __r->_M_size >= _S_min_len[__r->_M_depth - 2]); }        // Assumes the result is not empty.        static _RopeRep* _S_concat_and_set_balanced(_RopeRep* __left,                                                     _RopeRep* __right)        {            _RopeRep* __result = _S_concat(__left, __right);            if (_S_is_balanced(__result)) __result->_M_is_balanced = true;            return __result;        }        // The basic rebalancing operation.  Logically copies the        // rope.  The result has refcount of 1.  The client will        // usually decrement the reference count of __r.        // The result is within height 2 of balanced by the above        // definition.        static _RopeRep* _S_balance(_RopeRep* __r);        // Add all unbalanced subtrees to the forest of balanceed trees.        // Used only by balance.        static void _S_add_to_forest(_RopeRep*__r, _RopeRep** __forest);                // Add __r to forest, assuming __r is already balanced.        static void _S_add_leaf_to_forest(_RopeRep* __r, _RopeRep** __forest);        // Print to stdout, exposing structure        static void _S_dump(_RopeRep* __r, int __indent = 0);        // Return -1, 0, or 1 if __x < __y, __x == __y, or __x > __y resp.        static int _S_compare(const _RopeRep* __x, const _RopeRep* __y);   public:        bool empty() const { return 0 == _M_tree_ptr; }        // Comparison member function.  This is public only for those        // clients that need a ternary comparison.  Others        // should use the comparison operators below.        int compare(const rope& __y) const {            return _S_compare(_M_tree_ptr, __y._M_tree_ptr);        }        rope(const _CharT* __s, const allocator_type& __a = allocator_type())        : _Base(__STL_ROPE_FROM_UNOWNED_CHAR_PTR(__s, _S_char_ptr_len(__s),                                                 __a),__a)        { }        rope(const _CharT* __s, size_t __len,             const allocator_type& __a = allocator_type())        : _Base(__STL_ROPE_FROM_UNOWNED_CHAR_PTR(__s, __len, __a), __a)        { }        // Should perhaps be templatized with respect to the iterator type        // and use Sequence_buffer.  (It should perhaps use sequence_buffer        // even now.)        rope(const _CharT *__s, const _CharT *__e,             const allocator_type& __a = allocator_type())        : _Base(__STL_ROPE_FROM_UNOWNED_CHAR_PTR(__s, __e - __s, __a), __a)        { }        rope(const const_iterator& __s, const const_iterator& __e,             const allocator_type& __a = allocator_type())        : _Base(_S_substring(__s._M_root, __s._M_current_pos,                             __e._M_current_pos), __a)        { }        rope(const iterator& __s, const iterator& __e,             const allocator_type& __a = allocator_type())        : _Base(_S_substring(__s._M_root, __s._M_current_pos,                             __e._M_current_pos), __a)        { }        rope(_CharT __c, const allocator_type& __a = allocator_type())        : _Base(__a)        {            _CharT* __buf = _Data_allocate(_S_rounded_up_size(1));            construct(__buf, __c);            __STL_TRY {                _M_tree_ptr = _S_new_Rop

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产美| 欧美v亚洲v综合ⅴ国产v| 麻豆专区一区二区三区四区五区| 久久精品亚洲精品国产欧美kt∨ | 国产精品每日更新| 在线播放视频一区| 成人av网站在线观看免费| 蜜桃精品在线观看| 亚洲欧美偷拍另类a∨色屁股| www国产精品av| 7777精品久久久大香线蕉 | 一本久久a久久免费精品不卡| 久久精品国产一区二区三| 亚洲综合免费观看高清完整版| 国产亚洲成aⅴ人片在线观看| 欧美精品精品一区| 在线一区二区三区四区| 欧美日韩免费高清一区色橹橹| 成人午夜激情视频| 久久国产精品72免费观看| 亚洲第一主播视频| 亚洲欧美日韩国产成人精品影院| 国产调教视频一区| 久久综合av免费| 精品国免费一区二区三区| 欧美视频在线一区二区三区 | 日本一区二区三区四区| 精品av综合导航| 91麻豆精品国产91久久久更新时间| 99精品久久免费看蜜臀剧情介绍| 国产v综合v亚洲欧| 国产成人亚洲精品青草天美| 久草这里只有精品视频| 轻轻草成人在线| 日本一不卡视频| 日本大胆欧美人术艺术动态| 日韩av电影免费观看高清完整版| 亚洲一区在线视频观看| 亚洲欧美激情小说另类| 一区二区三区高清| 亚洲制服丝袜一区| 亚洲在线观看免费| 午夜精品一区二区三区免费视频| 一二三区精品视频| 视频一区中文字幕国产| 日韩电影网1区2区| 久久精品国产77777蜜臀| 精品一区二区三区的国产在线播放| 免播放器亚洲一区| 国产乱子轮精品视频| 国产夫妻精品视频| 国产成人综合网| 国产精品69久久久久水密桃| 国产精品综合一区二区三区| 国产黄色精品网站| 99久久伊人网影院| 色综合久久88色综合天天| 在线免费不卡视频| 欧美视频精品在线| 欧美色偷偷大香| 欧美一级二级三级乱码| 日韩久久免费av| 欧美高清在线精品一区| 亚洲日本乱码在线观看| 一区二区三区产品免费精品久久75| 亚洲一区二区三区四区五区中文 | 日日摸夜夜添夜夜添精品视频 | 亚洲午夜激情av| 日韩精品乱码免费| 国产一区视频在线看| 成人免费毛片片v| 色视频一区二区| 欧美一区二区三区免费视频| 精品久久久久久亚洲综合网| 国产精品无码永久免费888| 亚洲老司机在线| 蜜臀a∨国产成人精品| 国产寡妇亲子伦一区二区| 色综合av在线| 日韩欧美黄色影院| 中文字幕一区二区三区在线不卡| 亚洲v精品v日韩v欧美v专区| 精品一二三四区| 91偷拍与自偷拍精品| 91精品国产一区二区三区 | 最新热久久免费视频| 日韩黄色免费电影| 粉嫩av一区二区三区| 欧美视频三区在线播放| 久久久99免费| 依依成人精品视频| 国产乱子轮精品视频| 在线观看av一区| 久久久久久久久久久久电影 | 91精品国产高清一区二区三区蜜臀| 久久精品网站免费观看| 亚洲午夜免费电影| 北岛玲一区二区三区四区| 在线不卡欧美精品一区二区三区| 欧美韩日一区二区三区四区| 免费观看一级特黄欧美大片| 9色porny自拍视频一区二区| 日韩视频一区二区在线观看| 亚洲蜜臀av乱码久久精品蜜桃| 精品无人码麻豆乱码1区2区| 精品视频1区2区| 国产精品三级久久久久三级| 蜜桃精品视频在线| 欧美日韩成人综合在线一区二区 | 性久久久久久久久久久久| 99久久免费精品| 国产亚洲欧洲997久久综合 | 日本免费新一区视频| 日本韩国视频一区二区| 国产精品日韩精品欧美在线| 激情六月婷婷久久| 日韩一区二区精品| 亚洲国产精品久久久男人的天堂| 91亚洲精品久久久蜜桃网站 | eeuss鲁片一区二区三区在线看| 精品少妇一区二区三区视频免付费| 亚洲午夜国产一区99re久久| 91污片在线观看| 国产精品久久久久久久久晋中| 国产在线视视频有精品| 欧美一卡二卡三卡四卡| 五月天国产精品| 欧美日韩国产一区二区三区地区| 亚洲人快播电影网| 成人精品一区二区三区四区 | 亚洲综合男人的天堂| 91日韩精品一区| 综合欧美一区二区三区| av不卡免费电影| 亚洲天堂福利av| 色综合天天综合色综合av | 欧美狂野另类xxxxoooo| 亚洲一级片在线观看| 欧美日韩一区二区欧美激情| 一区二区三区在线免费观看| 色综合天天综合在线视频| 亚洲精品国产一区二区三区四区在线| 91女厕偷拍女厕偷拍高清| 亚洲欧美国产三级| 欧美亚洲日本一区| 日韩专区一卡二卡| 精品成人一区二区三区四区| 看电影不卡的网站| 国产偷v国产偷v亚洲高清| 成人av电影在线| 亚洲黄色尤物视频| 欧美精选一区二区| 捆绑调教一区二区三区| 久久综合久久综合亚洲| 成人性生交大片免费看视频在线| 国产精品久久久久婷婷| 在线精品视频一区二区| 视频在线观看一区二区三区| 欧美一区二区精美| 国产福利一区二区三区| 中文字幕一区二区三区不卡| 欧美探花视频资源| 久久精品国产亚洲aⅴ| 国产欧美日本一区视频| 91看片淫黄大片一级在线观看| 亚洲午夜电影在线| 精品久久人人做人人爰| 成人免费视频app| 一二三四区精品视频| 欧美一区二区三区精品| 国产成人aaa| 亚洲国产成人91porn| 日韩欧美二区三区| 91蝌蚪porny| 久久国产麻豆精品| 亚洲视频中文字幕| 精品美女一区二区| www.视频一区| 蜜桃精品视频在线| 中文字幕中文字幕一区二区| 欧美人xxxx| 成人激情视频网站| 日韩精品福利网| 中文字幕五月欧美| 日韩欧美综合一区| 91天堂素人约啪| 久久国产剧场电影| 亚洲午夜精品网| 国产精品国产三级国产普通话三级 | 99久久精品免费看国产免费软件| 亚洲成人激情综合网| 欧美激情一二三区| 日韩欧美在线影院| 91视频国产资源| 国产一区二区三区日韩| 亚洲午夜免费福利视频| 国产精品久线观看视频| 日韩一卡二卡三卡| 欧美性做爰猛烈叫床潮| 成人黄页毛片网站|