rope在字符串中进行插入和删除更快O(logn)
copy时。Rope不需要额外的O(n)内存空间
#include <ext/rope> //头文件
using namespace __gnu_cxx; //命名空间
rope<int>rop; //声明
//<crop>r="123";
基本操作:
T.push_back(x); //在末尾添加x
T.insert(pos,x); //在pos插入x
T.erase(pos,x); //从pos开始删除x个
T.copy(pos,len,x); //从pos开始到pos+len为止用x代替
T.replace(pos,x); //从pos开始换成x
T.substr(pos,x); //提取从pos开始x个
T.at(x)/T[x]; //访问第x个元素 log(n)
T.append(a); //连接字符串T, a log(n)
用途:
高效处理字符串的拼接、查询、删除、及随机访问
树反转:同时维护正反两个rope,反转即交换两个子串
区间循环位移:拆成多个子串连起来
区间a变b b变c c变d …… z变a: 维护26个rope
例题:
https://blog.csdn.net/A_Thinking_Reed_/article/details/81233967