首页 > 其他分享 >STL rope

STL rope

时间:2023-05-24 20:55:24浏览次数:26  
标签:his STL pos rope test 拷贝

头文件:#include <ext/rope>
命名空间:using namespace __gnu_cxx

rope test;

test.push_back(x);//在末尾添加x

ps:注意当test为rope<char>类型时只能添加单个字符而不能是字符串。

test.insert(pos,x);//在pos插入x  

test.erase(pos,x);//从pos开始删除x个

test.copy(pos,len,x);//将pos开始长len个元素替换到x中

ps:注意当test为rope<char>类型时x只能为char[]而不能是string。

test.replace(pos,x);//将pos换成x

test.substr(pos,x);//提取pos开始x个

test.at(x)/[x];//访问第x个元素

test.clear();//清空元素  

rope 内部是块状链表实现的,黑科技是支持 O(1)
复制,而且不会空间爆炸 (rope 是平衡树,拷贝时只拷贝根节点就行)。因此可以用来做可持久化数组。

拷贝历史版本的方式:

rope<int> *his[100000];
his[i] = new rope<int> (*his[i - 1]);

缺点是常数大 (C++ STL 的通病)。

还有一个叫 crope 的东西,crope 即 rope,可以用 cin/cout 直接输入输出,常用于字符串操作。

本文整理自网上资料。

标签:his,STL,pos,rope,test,拷贝
From: https://www.cnblogs.com/xu2006/p/17429467.html

相关文章

  • HTML中的attribute 和 property
    在HTML中,属性(Attribute)和属性(Property)是用于描述HTML元素的相关特性的术语。属性(Attribute)是指在HTML标签中声明的附加信息。它们以键值对的形式出现,用于提供元素的初始状态或配置选项。属性的名称是不区分大小写的,并且值可以是字符串或布尔值。例如,在以下的HTML<input......
  • 泛型编程(GP)和C++标准模板库(STL)
    GenericProgramming(GP)泛型编程,就是使用template(模板)为主要工具来编写程序level0:使用C++标准库level1:认识C++标准库level2:良好使用C++标准库level3:扩充C++标准库C++StandardLibraryC++标准库,编译器带的,可以看到sourcecode至于StandardTemplateLibrary->STL标......
  • Uncaught TypeError: Cannot read properties of undefined (reading ‘install‘)
     出现该情况的原因是vue-router安装的版本太高,一般vue2的项目对应的版本是vue-router@3版本①在控制台输入: [email protected] 重新安装vue-router即可解决......
  • 【如何实现tinySTL】实现小型的vector string 将 string 放入vector中
    语法细节类内的静态(static)成员在类外定义的时候不加statictypename的作用1.一种是在声明模板类、模板函数的参数的时候2.还有一种是在取别名的时候std::enable_if的几种用法定义cincoutendl都是什么endl是一个函数参数是basic_ostreamcincout是两个对象【在指定的地址构造......
  • 打印流和Properties类
    1. 打印流PrintStream 和 PrintWriter  636打印流只有输出流,没有输入流1.1 应用实例PrintStream字节输出打印流  636代码在com.stulzl.printstream_.包中PrintStream_ packagecom.stulzl.printstream_;importjava.io.IOException;importjava.io.PrintStream;//应......
  • 详解C++STL—函数对象
    1、函数对象1.1、函数对象概念概念:重载函数调用()操作符的类,其对象常称为函数对象函数对象使用重载的()时,行为类似函数调用,也叫仿函数本质:函数对象(仿函数)是一个类,不是一个函数1.2、函数对象的使用特点:函数对象在使用时,可以像普通函数那样调用,可以有参数,可以有返回值函数对象超......
  • 使用JSTL 通过taglib标签引入所需的标签库 uri属性没有提示
     首先找到这两个支持jar包 然后添加到项目的web下面的WEB-INF-->lib(没有的话自己建)下接着 鼠标在项目上右键Addaslibrary,下拉列表选择projectlibrary或者Module Library都可以。  ......
  • c++STL—容器map/multimap
    1、map基本概念1.1、简介map中所有元素都是pairpair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)所有元素都会根据元素的键值自动排序1.2、本质map/multimap属于关联式容器,底层结构是用二叉树实现。1.3、优点可以根据key值快速找到value值1.4、map和multimap区别map不......
  • 云原生之使用docker部署TestLink测试平台
    (云原生之使用docker部署TestLink测试平台)一、TestLink介绍TestLink是基于web的测试用例管理系统,主要功能是测试用例的创建、管理和执行,并且还提供了一些简单的统计功能。二、TestLink的特点测试需求管理测试用例管理测试用例对测试需求的覆盖管理测试计划的制......
  • 详解c++STL—容器set/multiset
    1、set基本概念1.1、功能所有元素都会在插入时自动被排序1.2、本质:set/multiset属于关联式容器,底层结构是用二叉树实现。1.3、set和multiset区别set不允许容器中有重复的元素multiset允许容器中有重复的元素2、set构造和赋值2.1、功能描述创建set容器以及赋值2.1、构造set<T>st;/......