读入 输出优化
       在c++默认情况下,cincout的读入输出速度相当慢,然是scanfprintf相较于cincout速度要快的多,具体是因为什么原因呢?那又有什么办法可以让cincout的速度快起来呢?

我们可以关闭同步

std::os::sync_with_stdio(false)

       这个函数的作用是关闭兼容stdio的开关,在c++中,为了使c++可以兼容c,为了防止在程序使用cin与scanf/cout与printf时发生错误混乱,c++将输出流同步绑定在了一起,这是c++为了兼容c而采取的保守措施,我们可以通过解除绑定来对c++的输入输出进行加速,而代价是cinscanf/coutprintf不能同时使用。

       在通常的情况下 cin绑定的是 cout ,每次执行<<操作符的时候都要调用 flush() ,这样会增加 IO 负担。可以通过 std::cin.tie(0) (0 表示 NULL)来解除 std::cin 与 std::cout 的绑定,进一步加快执行效率。

stream函数
       在这里又不得不说一说stream这个函数,在stream这个类中有两个重要的运算符,学习过c++的人对此肯定很熟悉,既是:

1、插入器 <<

       向流输出数据,这里的流可以是标准输出流,而这里的标准输出流是就是流向标准输出设备(显示器)的数据。在iostream类中定义了三个输出流对象,分别是cout流对象、cerr流对象和clog流对象。

2、析取器 >>

       向流中输入数据,这里的流可以使标准输入流cin,而这里的标准输入流就是从标准输入设备(键盘)流向程序的数据。

std::ios::sync_with_stdio(false);
std::cin.tie(0);

tie

       tie是将两个stream绑定的函数。即cin绑定的是cout,每次执行<<操作符的时候都要调用flush(),这会增加IO负担,所以,可以通过使用std::cin.tie(0)(0表示NULL)来解除cincout的绑定来进一步加快执行效率。