[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()的区别

猜你喜欢

转载自www.cnblogs.com/aiyi2000/p/9770451.html
OI
今日推荐