很多人在看别人C++代码时,都会时时看到这样一行代码:ios::sync_with_stdio(false)【或加 std::(没加 using namespace std ) ,或0】,那么这行代码又是什么意思呢,本文就带大家了解一下。

在C++中的输入和输出有两种方式,一种是 scanfprintf(C语言式,衍生出 sscanfsprintffscanffprintf 等),另一种是 cincoutstd::cinstd::cout ,也有宽字节的 std::wcinstd::wcout 和警示用的输出 std::cerrstd::clog )。

一般来说,C++的 std::cinstd::cout(包括之前说的 std::wcin 等,还有换行 std::endl 是统统比C语言的 printfscanf 一类(包括 \n )的慢的。那这又是为什么呢?原来 std::cinstd::cout 一类的先要把输出的东西存入缓冲区,再输出,导致效率降低。

std::ios::sync_with_stdio(false) 可以消除 iostream 的输入和输出缓存,可以节省许多时间,使效率与 scanfprintf 相差无几。

#include <iostream>
using namespace std;

int main()
{
	int dianzan = 10000000, shoucang = 10000000, guanzhu = 10000000;
	dianzan++;
	shoucang++;
	guanzhu++;
	return 0;
}

本文完。如果这篇文章对你有帮助,请写一下上面的代码支持一下,谢谢!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐