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// ... std::ifstream testFile("testfile", std::ios::binary); std::vector fileContents((std::istreambuf_iterator (testFile)), std::istreambuf_iterator ());
Optimisation des réallocations :
Si minimiser les réallocations de mémoire est crucial, allouez de l'espace dans le vecteur avant de charger le contenu du fichier :
#include// ... std::ifstream testFile("testfile", std::ios::binary); std::vector fileContents; fileContents.reserve(fileSize); fileContents.assign(std::istreambuf_iterator (testFile), std::istreambuf_iterator ());
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
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3