2024-02-27
algorithm
00
请注意,本文编写于 263 天前,最后修改于 256 天前,其中某些信息可能已经过时。

目录

算法前置知识
一、头文件
二、时间

本节是前置知识。

算法前置知识

一、头文件

包括算法库<algorithm>,C中的<cstirng>,C++中的<string>

c++
#include <bits/stdc++.h>

二、时间

算法题目中,时间上限一般都是1s

相比于scanfprintf,C++中的cincout因为要把输入输出的数据通过一个流缓冲区来同步C的scanfprintf,以至于当scanfprintf以及cincout同时使用时不发生混乱。

c++
#include <iostream> using namespace std; int main() { // 关闭输入输出缓存,使效率提升 ios::sync_with_stdio(false); // 解除cin和cout的默认绑定,来降低IO的负担使效率提升 cin.tie(NULL); cout.tie(NULL); ... return 0; }
  1. ios::sync_with_stdio(false)

   通过关闭输入输出缓存,即像scanfprintf一样直接进行,可大大提升输入输出效率。其次,在输出时使用\n来进行换行,避免使用endl也可提升输出效率。

注意:当设置为false时,cin就不能和scanfsscanf, getchar, fgets等同时使用。

  1. cin.tie(NULL);cout.tie(NULL)

   解除cincout运行库层面的对数据传输的默认绑定。由于存在数据传输的默认绑定,cincout在每次操作的时候(也就是调用”<<”或者”>>”)都要刷新(调用flush),这样增加了IO的负担。通过解除绑定,可提高输入输出效率。

本文作者:Travis

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 Travis 许可协议。转载请注明出处!