[OI - string]有关字符的的处理

Posted aiyi2000

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[OI - string]有关字符的的处理相关的知识,希望对你有一定的参考价值。

这篇博客主要介绍如何在读入字符串时速度更快

以及strlen.length()的区别

以及一些小知识qwq(没错就是很杂)

Ⅰ.如何在读入字符串速度更快

在读入一个字符串时,一般是只能用cin读入

1 std::string a;
2 int main()
3 {
4     cin >> a;
5 }

想让它读的更快,就需要有一些优化(

1 std::string a;
2 int main()
3 {
4     ios::sync_with_stdio(false); 
5     cin >> a;
6 }

在C++中,为了保证与C的兼容性,通常要把cout和printf一起绑定再输出流

这样在cincout中,输出时要先进入缓冲区再输出,这样效率就会大大降低

//从而造成了cin比不上scanf的假象

只需要把“是否兼容stdio”开关关闭即可

再优化:在默认的情况下,cin是和cout绑定在一起的,每次执行操作符<<的时候都要调用flush,这样会增加IO(输入输出)负担。

可以通过tie(0)(0表示NULL)来解除cincout的绑定,从而进一步加快效率

1 std::string a;
2 int main()
3 {
4     ios::sync_with_stdio(false); 
5     cin.tie(0);
6     cin >> a;
7 }

另一种方法:

 

 

以上就是如何在读取字符串时更快一些

Ⅱ.strlen.length()的区别

以上是关于[OI - string]有关字符的的处理的主要内容,如果未能解决你的问题,请参考以下文章

CSP核心代码片段记录

字符串处理的的相关用法

字符串处理的的相关用法

你如何在 python 中处理 graphql 查询和片段?

浅谈OI中的底层优化!

Char.toString没有特殊处理“和