【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); } // 以下略 }