ぱふの競プロ日記

競技プログラミングのメモや軌跡を残していく。そんなブログ。

【C++】空白の区切り文字をscanfで扱う

概要

競プロでC++cinは大量の入力だと遅いらしい。
そこでscanfを使用しようと思ったが、以下のような入力を配列に入れたい場合にどうすればよいか戸惑ったのでメモ。

▼空白で分割ってどうするの...?

10000000 // 入力される個数
2 5 3 9 5 2 4 7 ...


▼これなら処理できるのに...

10000000 // 入力される個数
2
5
3
9
5
2
4 
7
...
...

こうする

空白は改行と同じ扱いを受けるので、改行の場合と同じようにscanfを使えば良いようだ。

// 使用例
int main()
{
    int n;
    vector<int> v;

     scanf("%d", &n);
    
    for (int i = 0; i < n; i++)
    {
        int input;
        scanf("%d", &input);
        v.push_back(input);
    }

    // 以下略
}

おわり

Twitterフォロー歓迎です...(`・ω・´) ヨロシク!