1. 程式人生 > >[OI - string]有關字符的的處理

[OI - string]有關字符的的處理

兼容性 輸入輸出 out 情況下 緩沖 syn 的區別 () 優化

這篇博客主要介紹如何在讀入字符串時速度更快

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