Maison > développement back-end > C++ > Comment charger efficacement un fichier dans un « std :: vector » ?

Comment charger efficacement un fichier dans un « std :: vector » ?

Susan Sarandon
Libérer: 2024-11-09 15:26:02
original
217 Les gens l'ont consulté

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

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 :

#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>());
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal