Exemple #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);
	}
Exemple #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);
	}
Exemple #3
0
	int prev(rope<int>::const_iterator it) {
		if (it == r.begin())
			return *r.rbegin();
		it--;
		return *it;
	}
Exemple #4
0
	int next(rope<int>::const_iterator it) {
		it++;
		if (it == r.end())
			return *r.begin();
		return *it;
	}