[OI - string]有關字符的的處理
阿新 • • 發佈:2018-10-11
兼容性 輸入輸出 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一起綁定再輸出流
這樣在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); 6cin >> a; 7 }
另一種方法:
以上就是如何在讀取字符串時更快一些
Ⅱ.strlen和.length()的區別
[OI - string]有關字符的的處理