Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk memuatkan fail dengan cekap ke dalam `std::vector`?

Bagaimana untuk memuatkan fail dengan cekap ke dalam `std::vector`?

Susan Sarandon
Lepaskan: 2024-11-09 15:26:02
asal
167 orang telah melayarinya

How to Efficiently Load a File into an `std::vector`?

Memuatkan Fail dengan Cekap ke dalam std::vector

Untuk memuatkan fail dengan cekap ke dalam std::vector

Kaedah Kanonik Menggunakan Iterator:

Kaedah kanonik pendekatan menggunakan iterator aliran input untuk membina vektor daripada fail dengan mudah kandungan:

#include <iterator>
// ...

std::ifstream testFile("testfile", std::ios::binary);
std::vector<char> fileContents((std::istreambuf_iterator<char>(testFile)),
                               std::istreambuf_iterator<char>());</p>
<p><strong>Mengoptimumkan Pembahagian Semula:</strong></p>
<p>Jika meminimumkan pengagihan semula memori adalah penting, peruntukkan ruang dalam vektor sebelum memuatkan kandungan fail:</p>
<pre class="brush:php;toolbar:false">#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>());
Salin selepas log masuk

Dengan menggunakan iterator strim dan pra-peruntukkan memori apabila perlu, pendekatan ini menawarkan fail yang cekap memuatkan ke dalam std::vector.

Atas ialah kandungan terperinci Bagaimana untuk memuatkan fail dengan cekap ke dalam `std::vector`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan