回答編集履歴

1

e

2020/12/20 05:47

投稿

yumetodo
yumetodo

スコア5852

test CHANGED
@@ -3,3 +3,19 @@
3
3
 
4
4
 
5
5
  次に文字列から数値への変換に[`std::from_chars`](https://cpprefjp.github.io/reference/charconv/from_chars.html)を使います。iostream系の`operator >>`や`std::stoi`, `std::atoi`, `std::scanf`などの数値変換できそうなものはすべて`std::strtol`系関数を呼び出すことになっています。ところがこれはlocaleに依存するため高速とはいえません。C++17で追加された`std::from_chars`はlocaleに依存しないため高速に変換できます。しかも文字列の分割と同時並行で変換ができるので中間バッファのvectorなどを確保せずにすみます。
6
+
7
+
8
+
9
+ ---
10
+
11
+
12
+
13
+
14
+
15
+ というわけでそういうコードを書いてみました。
16
+
17
+
18
+
19
+ コードが長いのでリンク先で読んでください。
20
+
21
+ [https://wandbox.org/permlink/aBCCPI05GUPgenfn](https://wandbox.org/permlink/aBCCPI05GUPgenfn)