[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一起绑定再输出流
这样在cin和cout中,输出时要先进入缓冲区再输出,这样效率就会大大降低
//从而造成了cin比不上scanf的假象
只需要把“是否兼容stdio”开关关闭即可
再优化:在默认的情况下,cin是和cout绑定在一起的,每次执行操作符<<的时候都要调用flush,这样会增加IO(输入输出)负担。
可以通过tie(0)(0表示NULL)来解除cin与cout的绑定,从而进一步加快效率
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]有关字符的的处理的主要内容,如果未能解决你的问题,请参考以下文章