浅谈C++中的指令“ios::sync_with_stdio(false)”
很多人在看别人C++代码时,都会时时看到这样一行代码:`ios::sync_with_stdio(false)`【或加 `std::`(没加 `using namespace std` ) ,或0】,那么这行代码又是什么意思呢,本文就带大家了解一下。
·
很多人在看别人C++代码时,都会时时看到这样一行代码:ios::sync_with_stdio(false)
【或加 std::
(没加 using namespace std
) ,或0】,那么这行代码又是什么意思呢,本文就带大家了解一下。
在C++中的输入和输出有两种方式,一种是 scanf
和 printf
(C语言式,衍生出 sscanf
、sprintf
、fscanf
、fprintf
等),另一种是 cin
和 cout
( std::cin
和 std::cout
,也有宽字节的 std::wcin
、std::wcout
和警示用的输出 std::cerr
、 std::clog
)。
一般来说,C++的 std::cin
和 std::cout
(包括之前说的 std::wcin
等,还有换行 std::endl
是统统比C语言的 printf
、scanf
一类(包括 \n
)的慢的。那这又是为什么呢?原来 std::cin
、std::cout
一类的先要把输出的东西存入缓冲区,再输出,导致效率降低。
std::ios::sync_with_stdio(false)
可以消除 iostream
的输入和输出缓存,可以节省许多时间,使效率与 scanf
与 printf
相差无几。
#include <iostream>
using namespace std;
int main()
{
int dianzan = 10000000, shoucang = 10000000, guanzhu = 10000000;
dianzan++;
shoucang++;
guanzhu++;
return 0;
}
本文完。如果这篇文章对你有帮助,请写一下上面的代码支持一下,谢谢!
更多推荐
已为社区贡献10条内容
所有评论(0)