std::vector へのファイルの効率的な読み取り
ファイルを std に読み取るための最適な方法を探す場合: :vector
最適化されたソリューションの場合、正規のアプローチには反復子の使用が含まれます。
#include <iterator> std::ifstream testFile("testfile", std::ios::binary); std::vector<char> fileContents((std::istreambuf_iterator<char>(testFile)), std::istreambuf_iterator<char>());
このアプローチでは、2 つの反復子が定義されます。 1 つは入力ファイル ストリームの先頭を指し、もう 1 つは末尾を指します。次に、これらの反復子で定義された範囲を反復処理することによって、ベクトルが構築されます。
読み取りプロセス中の潜在的な再割り当てを軽減するには、reserve() メソッドを使用できます。
#include <iterator> std::ifstream testFile("testfile", std::ios::binary); std::vector<char> fileContents; fileContents.reserve(fileSize); fileContents.assign(std::istreambuf_iterator<char>(testFile), std::istreambuf_iterator<char>());
By reserving値を割り当てる前にベクトル内のスペースを確保すると、割り当て効率が向上し、メモリの断片化やパフォーマンスの低下の可能性が軽減されます。
以上がファイルを std::vector に効率的に読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。