Пример #1
0
	tuple<int, int, int> insert(int data, int pos) {
		r.insert(pos, data);
		auto it = r.begin() + pos;
		int p = prev(it);
		int q = next(it);
		return make_tuple(p, data, q);
	}
Пример #2
0
	tuple<int, int, int> remove(int pos) {
		auto it = r.begin() + pos;
		int del = *it;
		int p = prev(it);
		int q = next(it);
		r.erase(pos, 1);
		return make_tuple(p, del, q);
	}
Пример #3
0
_Rope_iterator<_CharT, _Alloc>::_Rope_iterator(rope<_CharT,_Alloc>& __r, size_t __pos):
  _Rope_iterator_base<_CharT,_Alloc>(__r._M_tree_ptr._M_data, __pos),
  _M_root_rope(&__r) {
#if !defined (__DMC__)
  _RopeRep::_S_ref(this->_M_root); if (!(__r.empty()))_S_setcache(*this);
#else
  _Rope_iterator_base<_CharT, _Alloc>* __x = this;
  _RopeRep::_S_ref(this->_M_root); if (!(__r.empty()))_S_setcache(*__x);
#endif
}
Пример #4
0
int main(){
    ios::sync_with_stdio(0);
    cin>>a;
    cin>>n;
    for(int i=0;i<(int)a.length();i++)r.insert(i,a[i]);
    //cout<<r;
    while(n--){
        cin>>k;
        if(k!='Q'){
            cin>>c>>t;
            r.insert(t-1,c);
        }else{
Пример #5
0
	int prev(rope<int>::const_iterator it) {
		if (it == r.begin())
			return *r.rbegin();
		it--;
		return *it;
	}
Пример #6
0
	int next(rope<int>::const_iterator it) {
		it++;
		if (it == r.end())
			return *r.begin();
		return *it;
	}
Пример #7
0
	void init() {
		r.clear();
	}