欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

C++输入输出的优化

程序员文章站 2022-06-22 21:29:56
有关输入输出的优化cin和cout是很方便的输入输出方式,比起scanf和printf,cin cout完全不需要关心变量的类型问题,反之对于string的读入,如果使用scanf还需要先规定好这个string的大小。但在某些特定情况下,如题目的数据量比较大,而算法的复杂度没办法进行更好的优化的时候,就只能把目光转向输入输出了。在带来方便的同时,cin和cout的耗时是很显然比scanf和printf要高的。在优化的时候我们有几种选择:关闭同步/解除绑定ios::sync_with_stdi...

有关输入输出的优化

cin和cout是很方便的输入输出方式,比起scanf和printf,cin cout完全不需要关心变量的类型问题,反之对于string的读入,如果使用scanf还需要先规定好这个string的大小。

但在某些特定情况下,如题目的数据量比较大,而算法的复杂度没办法进行更好的优化的时候,就只能把目光转向输入输出了。

在带来方便的同时,cin和cout的耗时是很显然比scanf和printf要高的。

在优化的时候我们有几种选择:

  1. 关闭同步/解除绑定

    ios::sync_with_stdio(false);
    
  2. 使用scanf和printf

  3. 使用getchar()

    int read() {
      int x = 0, w = 1;
      char ch = 0;
      while (!isdigit(ch)) {  // ch 不是数字时
        if (ch == '-') w = -1;        // 判断是否为负
        ch = getchar();               // 继续读入
      }
      while (isdigit(ch)) {  // ch 是数字时
        x = x * 10 + (ch - '0');  // 将新读入的数字加在 x 的后面
        ch = getchar();  // 继续读入
      }
      return x * w;  // 别忘了正负号
    }
    

本文地址:https://blog.csdn.net/qq_42681247/article/details/107525241

相关标签: c++