码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-10-11 10:19:28      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:span   情况下   区别   color   取字符串   ring   缓冲区   一起   知识   

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

以及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]有关字符的的处理

标签:span   情况下   区别   color   取字符串   ring   缓冲区   一起   知识   

原文地址:https://www.cnblogs.com/aiyi2000/p/9770451.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!