码迷,mamicode.com
首页 > 其他好文 > 详细

Rope整理(可持久化神器)

时间:2019-01-28 01:01:01      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:迭代器   namespace   需要   n个元素   stl   ace   ase   insert   code   

 

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整理(可持久化神器)

标签:迭代器   namespace   需要   n个元素   stl   ace   ase   insert   code   

原文地址:https://www.cnblogs.com/shenben/p/10327981.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!