C++読み込み出力最適化

1486 ワード

C++の読み込み最適化はscanf関数に基づいてintを読み込むのが遅い現実(cinよりずっと速く、多くの場合最適選択)であり、これは読み込み文字と比較するのが遅い.
いくつかの入力データの大きい問題では、読み込み最適化の効果が優れ、Tのコードを「復活」させることがある.
出力最適化は同じ理屈で、一部の問題の出力データが大きい場合は使わざるを得ないが、方法は読み込み最適化と似ており、putcharを使う.
void get(int &x)
{
    char c = getchar(); x = 0;
    while(c < '0' || c > '9') c = getchar();
    while(c <= '9' && c >= '0') x = x*10+c-48, c = getchar();
}

void put(int x)  
{  
    int num = 0; char c[15];
    while(x) c[++num] = (x%10)+48, x /= 10;
    while(num) putchar(c[num--]);
    putchar('
'
); }