私は非常に単純なことをしています: テキストファイル全体をディスクからstd::string
. 私の現在のコードは基本的にこれを行います:
std::ifstream f(filename);
return std::string(std::istreambuf_iterator<char>(f), std::istreambuf_iterator<char>());
これがプログラムのパフォーマンスに何らかの影響を与える可能性はほとんどありませんが、これが遅い方法であるかどうかはまだ知りませんでした.
文字列の構築に多くの再割り当てが必要になるリスクはありますか? seekg()
/を使用して、読み取りを行う前にtellg()
ファイルのサイズと文字列内のそのスペースを計算する方が良い (つまり、より速い)でしょうか?reserve()