Cargar eficientemente un archivo en un std::vector
Para cargar eficientemente un archivo en un std::vector
Método canónico usando iteradores:
El método canónico Este enfoque emplea iteradores de flujo de entrada para construir convenientemente el vector a partir del contenido del archivo:
#include// ... std::ifstream testFile("testfile", std::ios::binary); std::vector fileContents((std::istreambuf_iterator (testFile)), std::istreambuf_iterator ());
Optimización para reasignaciones:
Si minimizar las reasignaciones de memoria es crucial, asigne espacio en el vector antes de cargar el contenido del archivo :
#include// ... std::ifstream testFile("testfile", std::ios::binary); std::vector fileContents; fileContents.reserve(fileSize); fileContents.assign(std::istreambuf_iterator (testFile), std::istreambuf_iterator ());
Al utilizar iteradores de flujo y preasignar memoria cuando sea necesario, estos enfoques ofrecen una carga eficiente de archivos en un std::vector
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3