Rope整理(可持久化神器)

Posted shenben

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rope整理(可持久化神器)相关的知识,希望对你有一定的参考价值。

 

rope是什么?STL的内置的可持久化的数组。其最为方便的就是可以O1复制原来的数组。事实上rope的内置实现也是平衡树,由于只需要复制根结点,O1可以做到复制历史版本。
然而这个东西常数特大,不开O2可能会被卡

科普一下rope基本操作(百度貌似有点难找):

#include<ext/rope>
using namespace __gnu_cxx;//rope的命名空间
rope<type> R;
R.push_back(a) //往后插入
R.insert(pos,a)//在pos位置插入a,pos是一个迭代器。
R.erase(pos,n)//在pos位置删除n个元素。
R.replace(pos,x)//从pos开始替换成x
R.substr(pos,x)//从pos开始提取x个。

 

 

多数时候定义rope用指针(方便可持久化) 所以上面的点多数时候要换成->
如何进行复制?很简单,一句话:

rope<type>* R[1000];
R[i] = new rope<type>(*R[v]);

 

 


 

 

以上是关于Rope整理(可持久化神器)的主要内容,如果未能解决你的问题,请参考以下文章

[bzoj3673][可持久化并查集 by zky] (rope(可持久化数组)+并查集=可持久化并查集)

stl rope

ACM入门之可持续化数组(Rope)

codevs 3333 高级打字机

Doxygen:代码说明书生成神器

[UVa12538]Version Controlled IDE