Michael_Bryant最喜欢的G(al)G(ame)

那些悲伤,那些寂寞,那些几乎让自己放弃生活的希望的痛苦的回忆,绝对绝对不要将它们忘记。

Michael_Bryant最喜欢的番剧

抱歉⋯我已经绝对不可能再获得幸福了,因为⋯我发现⋯ 其实我⋯ 早就已经被幸福包围了

Michael_Bryant正在看的番剧

死亡一点也不温柔,只有无尽的黑暗和孤独。 就算联系得再紧密,人也是孤独的。

C++选手的福利——String类型变量

写在前面

这篇文章的由来是源于我今天做了NOIP求先序排列那道题
发现如果不用string自带的一些函数非常复杂
所以在这里整理一下string提供的便利
以后再也不用费劲心思想怎么处理了

1.可以直接赋值

这个我想是个人都知道
string a1="I_am_Michael_bryant"
string a2="Fxxk_You"

2.求长度

int l=a1.length()

3.支持初始化连续长度字符

这个开始我想就相对生僻了
string a1(8,'S')
这个大家可以跑一下
跑出来的大概是 SSSSSSSS这个字符串

4.可以实现快速连接

这个挺有用的 省的用字符数组怪麻烦的
string s1=s2+' '+s3;

5.插入操作也是资瓷的

string s1;
s1.insert(7,"Michael_Bryant")

这个的意思是说在s1这个字符串下标为7的位置插入这段东西

6.替换操作

跟插入的代码类似
string s1;s1.replace(2,4,"fxxk")
这个是在说把s1这个字符串从下标2开始连续4位替换成fxxk
当然了替换长度和我们指定的长度可以不相等
比如说可以s1.replace(2,4,"faq")
这样是把长度为4的一串东西替换成长度为3的一段东西

7.部分赋值

全部赋值我要是写在这里显得我弱智
不会的你就别看我这篇文章了
string s1="shit";string s2=s1;
重点在于部分赋值
跟替换代码类似
string s1=s.substr(1.100)
这段代码说的是把s这个字符串下标从1开始的连续100位赋值给s1这个字符串

8.比较大小

这个不多说了
直接用' > ' ' < '比较就行
这个比较的是字典序

9.查找

int pos=s.find(s1)
查找s中有没有s1
有的话返回首字母下标
没有的话我也不懂啊

10.最后一个——删除操作

这个函数的名字感觉并不是属于string的
然而它就是属于string的
s1.erase(5,8)
s1字符串从下标5开始 连续删除8位

写在最后

1.注意

以上操作我对于每一位强调下标的原因是因为第一位下标是0
所以说用的时候稍微注意点

2.碎碎念

这种提供便利的操作永远都有点慢
所以需要速度的时候用用可以
追求速度的时候还是老实点用字符数组吧
真的快
而且那些东西也可以手动写上文的操作
就是麻烦点呗

3.类比推理(?

string这些操作和手写char数组的区别
跟set和splay他们的区别是差不多的
酌情使用 自行食用

Add a Comment

电子邮件地址不会被公开。 必填项已用*标注

隐藏