Maison > développement back-end > C++ > le corps du texte

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

Susan Sarandon
Libérer: 2024-11-09 15:26:02
original
151 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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal