Charger efficacement un fichier dans un std::vector
Pour charger efficacement un fichier dans un std::vector Méthode canonique utilisant des itérateurs : La méthode canonique utilisant des itérateurs L'approche utilise des itérateurs de flux d'entrée pour construire facilement le vecteur à partir du contenu du fichier : En utilisant des itérateurs de flux et en pré-allouant de la mémoire si nécessaire, ces approches offrent un chargement efficace des fichiers dans un std::vector Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!#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>Optimisation pour Réallocations :</strong></p>
<p>Si minimiser les réallocations de mémoire est crucial, allouez de l'espace dans le vecteur avant de charger le contenu du fichier :</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>());