Effizientes Laden einer Datei in einen std::vector
Um eine Datei effizient in einen std::vector Kanonische Methode mit Iteratoren: Die kanonische Der Ansatz verwendet Eingabestream-Iteratoren, um den Vektor bequem aus den Dateiinhalten zu erstellen: Durch die Verwendung von Stream-Iteratoren und die Vorabzuweisung von Speicher bei Bedarf, Diese Ansätze ermöglichen ein effizientes Laden von Dateien in einen std::vector Das obige ist der detaillierte Inhalt vonWie lade ich eine Datei effizient in einen „std::vector'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!#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>Optimierung für Neuzuweisungen:</strong></p>
<p>Wenn die Minimierung von Speicherneuzuweisungen entscheidend ist, weisen Sie Platz im Vektor zu, bevor Sie den Dateiinhalt laden:</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>());