理論上最速の方法は、ほぼ確実にシステムレベルの入力ルーチンです。これは、stdin
(Cで、C ++でも利用可能)とstd::cin
これらに基づいて構築されているためです。一方、これらは一般にプラットフォーム用に最適化されているため、自分で最適な構成(たとえば、バッファーサイズなど)を見つけられない限り、それぞれに対してread
(Unix)またはReadFile
(Windows)を呼び出すと、あまり得られない可能性があります。文字はおそらく。のようなものを使用するよりも遅くなります
std::getline
。
もう1つの質問は、データを読んだ後、データをどのように処理するかです。のような関数、read
または特定の文字数のReadLine
バッファ()を提供します。char[]
次に、それを分析したり、行に分割しstd::getline
たりする必要があります。次のような関数std::string
は、行を含むものを提供します。本当に熟練したC++プログラマーであれば、実際のデータがから移動されないように整理することもできますが
char[]
、これには、標準ライブラリにすでに実装されている多くのものを再実装する必要があります。標準ライブラリでテンプレートを使用するということは、他の方法で実装する必要があるほど多くを実装する必要がないことを意味しますが、std::string
2つのイテレータを維持する同等のものを作成する必要があります(char const*
)データ自体ではなく。
最後に、とを使用してアプリケーションを作成することから始め
std::getline
ますstd::string
。それが機能するようになったら、実際のパフォーマンスが何であるかを確認し、必要に応じて、それを改善する方法を検討します。