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

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

?? ropeimpl.h

?? The Standard Template Library, or STL, is a C++ library of container classes, algorithms, and iterat
?? H
?? 第 1 頁 / 共 4 頁
字號:
    {#	ifndef __GC	  _Self_destruct_ptr __old(__too_tiny);#	endif	__insertee = _S_concat_and_set_balanced(__too_tiny, __r);    }    // Too_tiny dead, and no longer included in refcount.    // Insertee is live and included.    __stl_assert(_S_is_almost_balanced(__insertee));    __stl_assert(__insertee->_M_depth <= __r->_M_depth + 1);    for (;; ++__i) {	if (0 != __forest[__i]) {#	    ifndef __GC	      _Self_destruct_ptr __old(__insertee);#	    endif	    __insertee = _S_concat_and_set_balanced(__forest[__i], __insertee);	    __forest[__i]->_M_unref_nonnil();	    __forest[__i] = 0;	    __stl_assert(_S_is_almost_balanced(__insertee));	}	__stl_assert(_S_min_len[__i] <= __insertee->_M_size);	__stl_assert(__forest[__i] == 0);	if (__i == _RopeRep::_S_max_rope_depth || 	      __insertee->_M_size < _S_min_len[__i+1]) {	    __forest[__i] = __insertee;	    // refcount is OK since __insertee is now dead.	    return;	}    }}template <class _CharT, class _Alloc>_CharTrope<_CharT,_Alloc>::_S_fetch(_RopeRep* __r, size_type __i){    __GC_CONST _CharT* __cstr = __r->_M_c_string;    __stl_assert(__i < __r->_M_size);    if (0 != __cstr) return __cstr[__i];     for(;;) {      switch(__r->_M_tag) {	case _RopeRep::_S_concat:	    {		_RopeConcatenation* __c = (_RopeConcatenation*)__r;		_RopeRep* __left = __c->_M_left;		size_t __left_len = __left->_M_size;		if (__i >= __left_len) {		    __i -= __left_len;		    __r = __c->_M_right;		} else {		    __r = __left;		}	    }	    break;	case _RopeRep::_S_leaf:	    {		_RopeLeaf* __l = (_RopeLeaf*)__r;		return __l->_M_data[__i];	    }	case _RopeRep::_S_function:	case _RopeRep::_S_substringfn:	    {		_RopeFunction* __f = (_RopeFunction*)__r;		_CharT __result;		(*(__f->_M_fn))(__i, 1, &__result);		return __result;	    }      }    }}# ifndef __GC// Return a uniquely referenced character slot for the given// position, or 0 if that's not possible.template <class _CharT, class _Alloc>_CharT*rope<_CharT,_Alloc>::_S_fetch_ptr(_RopeRep* __r, size_type __i){    _RopeRep* __clrstack[_RopeRep::_S_max_rope_depth];    size_t __csptr = 0;    for(;;) {      if (__r->_M_ref_count > 1) return 0;      switch(__r->_M_tag) {	case _RopeRep::_S_concat:	    {		_RopeConcatenation* __c = (_RopeConcatenation*)__r;		_RopeRep* __left = __c->_M_left;		size_t __left_len = __left->_M_size;		if (__c->_M_c_string != 0) __clrstack[__csptr++] = __c;		if (__i >= __left_len) {		    __i -= __left_len;		    __r = __c->_M_right;		} else {		    __r = __left;		}	    }	    break;	case _RopeRep::_S_leaf:	    {		_RopeLeaf* __l = (_RopeLeaf*)__r;		if (__l->_M_c_string != __l->_M_data && __l->_M_c_string != 0)		    __clrstack[__csptr++] = __l;		while (__csptr > 0) {		    -- __csptr;		    _RopeRep* __d = __clrstack[__csptr];		    __d->_M_free_c_string();		    __d->_M_c_string = 0;		}		return __l->_M_data + __i;	    }	case _RopeRep::_S_function:	case _RopeRep::_S_substringfn:	    return 0;      }    }}# endif /* __GC */// The following could be implemented trivially using// lexicographical_compare_3way.// We do a little more work to avoid dealing with rope iterators for// flat strings.template <class _CharT, class _Alloc>intrope<_CharT,_Alloc>::_S_compare (const _RopeRep* __left,                                  const _RopeRep* __right){    size_t __left_len;    size_t __right_len;    if (0 == __right) return 0 != __left;    if (0 == __left) return -1;    __left_len = __left->_M_size;    __right_len = __right->_M_size;    if (_RopeRep::_S_leaf == __left->_M_tag) {	_RopeLeaf* __l = (_RopeLeaf*) __left;	if (_RopeRep::_S_leaf == __right->_M_tag) {	    _RopeLeaf* __r = (_RopeLeaf*) __right;	    return lexicographical_compare_3way(			__l->_M_data, __l->_M_data + __left_len,			__r->_M_data, __r->_M_data + __right_len);	} else {	    const_iterator __rstart(__right, 0);	    const_iterator __rend(__right, __right_len);	    return lexicographical_compare_3way(			__l->_M_data, __l->_M_data + __left_len,			__rstart, __rend);	}    } else {	const_iterator __lstart(__left, 0);	const_iterator __lend(__left, __left_len);	if (_RopeRep::_S_leaf == __right->_M_tag) {	    _RopeLeaf* __r = (_RopeLeaf*) __right;	    return lexicographical_compare_3way(				   __lstart, __lend,				   __r->_M_data, __r->_M_data + __right_len);	} else {	    const_iterator __rstart(__right, 0);	    const_iterator __rend(__right, __right_len);	    return lexicographical_compare_3way(				   __lstart, __lend,				   __rstart, __rend);	}    }}// Assignment to reference proxies.template <class _CharT, class _Alloc>_Rope_char_ref_proxy<_CharT, _Alloc>&_Rope_char_ref_proxy<_CharT, _Alloc>::operator= (_CharT __c) {    _RopeRep* __old = _M_root->_M_tree_ptr;#   ifndef __GC	// First check for the case in which everything is uniquely	// referenced.  In that case we can do this destructively.	_CharT* __ptr = _My_rope::_S_fetch_ptr(__old, _M_pos);	if (0 != __ptr) {	    *__ptr = __c;	    return *this;	}#   endif    _Self_destruct_ptr __left(      _My_rope::_S_substring(__old, 0, _M_pos));    _Self_destruct_ptr __right(      _My_rope::_S_substring(__old, _M_pos+1, __old->_M_size));    _Self_destruct_ptr __result_left(      _My_rope::_S_destr_concat_char_iter(__left, &__c, 1));#   ifndef __GC      __stl_assert(__left == __result_left || 1 == __result_left->_M_ref_count);#   endif    _RopeRep* __result =		_My_rope::_S_concat(__result_left, __right);#   ifndef __GC      __stl_assert(1 <= __result->_M_ref_count);      _RopeRep::_S_unref(__old);#   endif    _M_root->_M_tree_ptr = __result;    return *this;}template <class _CharT, class _Alloc>inline _Rope_char_ref_proxy<_CharT, _Alloc>::operator _CharT () const{    if (_M_current_valid) {	return _M_current;    } else {        return _My_rope::_S_fetch(_M_root->_M_tree_ptr, _M_pos);    }}template <class _CharT, class _Alloc>_Rope_char_ptr_proxy<_CharT, _Alloc>_Rope_char_ref_proxy<_CharT, _Alloc>::operator& () const {    return _Rope_char_ptr_proxy<_CharT, _Alloc>(*this);}template <class _CharT, class _Alloc>rope<_CharT, _Alloc>::rope(size_t __n, _CharT __c,			   const allocator_type& __a): _Base(__a){    rope<_CharT,_Alloc> __result;    const size_t __exponentiate_threshold = 32;    size_t __exponent;    size_t __rest;    _CharT* __rest_buffer;    _RopeRep* __remainder;    rope<_CharT,_Alloc> __remainder_rope;    if (0 == __n)      return;        __exponent = __n / __exponentiate_threshold;    __rest = __n % __exponentiate_threshold;    if (0 == __rest) {	__remainder = 0;    } else {	__rest_buffer = _Data_allocate(_S_rounded_up_size(__rest));	uninitialized_fill_n(__rest_buffer, __rest, __c);	_S_cond_store_eos(__rest_buffer[__rest]);	__STL_TRY {	    __remainder = _S_new_RopeLeaf(__rest_buffer, __rest, __a);        }	__STL_UNWIND(_RopeRep::__STL_FREE_STRING(__rest_buffer, __rest, __a))    }    __remainder_rope._M_tree_ptr = __remainder;    if (__exponent != 0) {	_CharT* __base_buffer =	  _Data_allocate(_S_rounded_up_size(__exponentiate_threshold));	_RopeLeaf* __base_leaf;	rope __base_rope;	uninitialized_fill_n(__base_buffer, __exponentiate_threshold, __c);	_S_cond_store_eos(__base_buffer[__exponentiate_threshold]);	__STL_TRY {          __base_leaf = _S_new_RopeLeaf(__base_buffer,                                        __exponentiate_threshold, __a);        }	__STL_UNWIND(_RopeRep::__STL_FREE_STRING(__base_buffer, 	                                         __exponentiate_threshold, __a))	__base_rope._M_tree_ptr = __base_leaf; 	if (1 == __exponent) {	  __result = __base_rope;#         ifndef __GC	    __stl_assert(2 == __result._M_tree_ptr->_M_ref_count);		// One each for base_rope and __result#         endif	} else {	  __result = power(__base_rope, __exponent,			   _Rope_Concat_fn<_CharT,_Alloc>());	}	if (0 != __remainder) {	  __result += __remainder_rope;	}    } else {	__result = __remainder_rope;    }    _M_tree_ptr = __result._M_tree_ptr;    _M_tree_ptr->_M_ref_nonnil();}template<class _CharT, class _Alloc>  _CharT rope<_CharT,_Alloc>::_S_empty_c_str[1];template<class _CharT, class _Alloc>const _CharT* rope<_CharT,_Alloc>::c_str() const {    if (0 == _M_tree_ptr) {        _S_empty_c_str[0] = _S_eos((_CharT*)0);  // Possibly redundant,					     // but probably fast.        return _S_empty_c_str;    }    __GC_CONST _CharT* __old_c_string = _M_tree_ptr->_M_c_string;    if (0 != __old_c_string) return(__old_c_string);    size_t __s = size();    _CharT* __result = _Data_allocate(__s + 1);    _S_flatten(_M_tree_ptr, __result);    __result[__s] = _S_eos((_CharT*)0);#   ifdef __GC	_M_tree_ptr->_M_c_string = __result;#   else      if ((__old_c_string = (__GC_CONST _CharT*)             _Atomic_swap((unsigned long *)(&(_M_tree_ptr->_M_c_string)),			  (unsigned long)__result)) != 0) {	// It must have been added in the interim.  Hence it had to have been	// separately allocated.  Deallocate the old copy, since we just	// replaced it.	destroy(__old_c_string, __old_c_string + __s + 1);	_Data_deallocate(__old_c_string, __s + 1);      }#   endif    return(__result);}template<class _CharT, class _Alloc>const _CharT* rope<_CharT,_Alloc>::replace_with_c_str() {    if (0 == _M_tree_ptr) {        _S_empty_c_str[0] = _S_eos((_CharT*)0);        return _S_empty_c_str;    }    __GC_CONST _CharT* __old_c_string = _M_tree_ptr->_M_c_string;    if (_RopeRep::_S_leaf == _M_tree_ptr->_M_tag && 0 != __old_c_string) {	return(__old_c_string);    }    size_t __s = size();    _CharT* __result = _Data_allocate(_S_rounded_up_size(__s));    _S_flatten(_M_tree_ptr, __result);    __result[__s] = _S_eos((_CharT*)0);    _M_tree_ptr->_M_unref_nonnil();    _M_tree_ptr = _S_new_RopeLeaf(__result, __s, get_allocator());    return(__result);}// Algorithm specializations.  More should be added.#ifndef _MSC_VER// I couldn't get this to work with VC++template<class _CharT,class _Alloc>void_Rope_rotate(_Rope_iterator<_CharT,_Alloc> __first,              _Rope_iterator<_CharT,_Alloc> __middle,              _Rope_iterator<_CharT,_Alloc> __last){    __stl_assert(__first.container() == __middle.container()                 && __middle.container() == __last.container());    rope<_CharT,_Alloc>& __r(__first.container());    rope<_CharT,_Alloc> __prefix = __r.substr(0, __first.index());    rope<_CharT,_Alloc> __suffix =       __r.substr(__last.index(), __r.size() - __last.index());    rope<_CharT,_Alloc> __part1 =       __r.substr(__middle.index(), __last.index() - __middle.index());    rope<_CharT,_Alloc> __part2 =       __r.substr(__first.index(), __middle.index() - __first.index());    __r = __prefix;    __r += __part1;    __r += __part2;    __r += __suffix;}#if !defined(__GNUC__)// Appears to confuse g++inline void rotate(_Rope_iterator<char,__STL_DEFAULT_ALLOCATOR(char)> __first,                   _Rope_iterator<char,__STL_DEFAULT_ALLOCATOR(char)> __middle,                   _Rope_iterator<char,__STL_DEFAULT_ALLOCATOR(char)> __last) {    _Rope_rotate(__first, __middle, __last);}#endif# if 0// Probably not useful for several reasons:// - for SGIs 7.1 compiler and probably some others,//   this forces lots of rope<wchar_t, ...> instantiations, creating a//   code bloat and compile time problem.  (Fixed in 7.2.)// - wchar_t is 4 bytes wide on most UNIX platforms, making it unattractive//   for unicode strings.  Unsigned short may be a better character//   type.inline void rotate(		_Rope_iterator<wchar_t,__STL_DEFAULT_ALLOCATOR(char)> __first,                _Rope_iterator<wchar_t,__STL_DEFAULT_ALLOCATOR(char)> __middle,                _Rope_iterator<wchar_t,__STL_DEFAULT_ALLOCATOR(char)> __last) {    _Rope_rotate(__first, __middle, __last);}# endif#endif /* _MSC_VER */#if defined(__sgi) && !defined(__GNUC__) && (_MIPS_SIM != _MIPS_SIM_ABI32)#pragma reset woff 1174#endif__STL_END_NAMESPACE// Local Variables:// mode:C++// End:

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
最新成人av在线| 一区二区三区丝袜| 精品99一区二区三区| 337p粉嫩大胆色噜噜噜噜亚洲| 国产午夜亚洲精品羞羞网站| 亚洲免费伊人电影| 精品午夜一区二区三区在线观看| 成人一区二区三区在线观看| 欧美色视频在线观看| 欧美不卡一二三| 亚洲精品美腿丝袜| 国产成人免费9x9x人网站视频| 欧美精品v国产精品v日韩精品| 欧美激情一区二区三区不卡 | 五月天久久比比资源色| 国产在线精品不卡| 91精品国产色综合久久不卡电影 | 国产一区二区三区在线看麻豆| 日本亚洲最大的色成网站www| 欧美性一区二区| 国产精品色在线| 国产精品色眯眯| 欧美色窝79yyyycom| 91视频在线看| 国产精品三级在线观看| 免费成人在线观看| 国产欧美日韩在线看| 成人爱爱电影网址| 91在线小视频| 欧美一区二区三区免费大片| 亚洲精品一区二区三区在线观看| 欧美精品在欧美一区二区少妇| 日韩精品中文字幕在线一区| 国产精品国产馆在线真实露脸| 亚瑟在线精品视频| 玉米视频成人免费看| 亚洲 欧美综合在线网络| 成人av电影在线播放| 26uuu精品一区二区| 亚洲精品免费在线| 成人午夜私人影院| 日韩一级片网址| 成人午夜伦理影院| 久久久www成人免费无遮挡大片| 国产老女人精品毛片久久| 亚洲另类中文字| 国产一区二区主播在线| 91理论电影在线观看| 亚洲精品在线免费观看视频| 无码av免费一区二区三区试看| 91精品国产色综合久久不卡电影| 亚洲欧美成人一区二区三区| 久久99精品国产麻豆不卡| 91成人免费网站| 一区二区高清在线| 麻豆国产精品官网| 亚洲精品成人天堂一二三| 蜜臀久久久99精品久久久久久| 欧美亚洲国产一区在线观看网站 | 日本特黄久久久高潮| 在线观看国产91| 91福利精品第一导航| 国产精品久久久久久久久久免费看| 免费在线视频一区| 亚洲国产精品国自产拍av| 国产精品一品视频| 成人一道本在线| 国产精品久久久久四虎| 精品免费国产一区二区三区四区| 欧美日韩免费不卡视频一区二区三区 | 亚洲一区精品在线| 欧美日韩国产大片| 91麻豆成人久久精品二区三区| 9l国产精品久久久久麻豆| 婷婷夜色潮精品综合在线| 一区二区三区日韩欧美| 综合激情网...| 亚洲人成人一区二区在线观看 | 国产精品久久久爽爽爽麻豆色哟哟| 精品欧美黑人一区二区三区| 日韩一区二区电影| 日韩精品自拍偷拍| 精品日韩一区二区| 久久综合久色欧美综合狠狠| 久久精品欧美一区二区三区不卡 | 337p亚洲精品色噜噜狠狠| 国产不卡视频在线观看| 亚洲一区二区三区中文字幕| 亚洲精选在线视频| 一区二区三区欧美日| 亚洲午夜久久久久久久久电影网 | 在线这里只有精品| 欧美色精品在线视频| 欧美妇女性影城| 日韩欧美精品在线视频| 日韩精品中文字幕在线一区| 久久久久久久性| 最新国产精品久久精品| 精品裸体舞一区二区三区| 26uuu久久综合| 国产精品福利av| 一级精品视频在线观看宜春院 | 欧美国产成人精品| 亚洲欧洲成人av每日更新| 日韩专区一卡二卡| 国产色爱av资源综合区| 欧美国产丝袜视频| 国产精品久久久久久久裸模 | 99久久99久久久精品齐齐| 一本色道久久加勒比精品| 精品一区二区三区免费毛片爱| 国产一区二区免费在线| 91在线观看高清| 91精品国产麻豆| 国产欧美日韩三区| 亚洲成人www| 国产91精品免费| 欧美在线观看18| 久久久久久97三级| 亚洲6080在线| 成人免费高清视频在线观看| 在线观看视频欧美| 久久综合色天天久久综合图片| 亚洲精品日韩专区silk| 麻豆精品视频在线观看| 色综合久久久网| 欧美tk—视频vk| 亚洲成人在线免费| jlzzjlzz亚洲日本少妇| 91精品视频网| 国产精品初高中害羞小美女文| 免费一级欧美片在线观看| 99久久国产免费看| 久久五月婷婷丁香社区| 亚洲韩国精品一区| 成人福利在线看| 亚洲色图在线播放| 日本91福利区| 九九热在线视频观看这里只有精品| av影院午夜一区| 亚洲男人天堂一区| 精品在线播放免费| 欧美专区日韩专区| 中文字幕在线不卡一区 | 国产精品免费视频网站| 蜜桃传媒麻豆第一区在线观看| 日本韩国欧美三级| 日韩毛片一二三区| 国产乱码一区二区三区| 欧美一区二区三区喷汁尤物| 亚洲精品欧美激情| 色综合久久久久综合体桃花网| 中文字幕精品—区二区四季| 精品系列免费在线观看| 日韩一区二区视频在线观看| 亚洲福利国产精品| 在线日韩av片| 日日嗨av一区二区三区四区| 久久精品99久久久| 亚洲色图一区二区三区| 国产一区二区三区美女| 欧美变态tickling挠脚心| 首页综合国产亚洲丝袜| 欧美日韩中文另类| 亚洲第一激情av| 欧美亚洲国产一区二区三区va | 欧美日韩国产一区二区三区地区| 中文成人综合网| 国产精品1024| 国产日韩欧美麻豆| 国产成人精品aa毛片| 国产日产精品1区| 国产91高潮流白浆在线麻豆 | 青青草原综合久久大伊人精品 | 亚洲精品一区二区三区在线观看| 久久不见久久见免费视频7| 日韩欧美高清在线| 精品伊人久久久久7777人| 精品日韩成人av| 国产高清不卡二三区| 国产精品天天看| 色狠狠色狠狠综合| 偷偷要91色婷婷| 日韩欧美在线网站| 国产成人午夜精品影院观看视频 | 成人性生交大片免费看在线播放| 亚洲18女电影在线观看| 曰韩精品一区二区| 1000精品久久久久久久久| 日韩欧美成人一区二区| 久久丝袜美腿综合| 欧美激情一区二区在线| 亚洲国产日产av| 欧美午夜片在线观看| 亚洲777理论| 久久婷婷色综合| 99久久国产综合精品麻豆| 亚洲777理论| 国产视频一区在线观看| 色综合久久88色综合天天6 |