Effizientes Laden einer Datei in einen std::vector
So laden Sie eine Datei effizient in einen std::vector
Kanonische Methode mit Iteratoren:
Die kanonische Der Ansatz verwendet Eingabestream-Iteratoren, um den Vektor bequem aus den Dateiinhalten zu erstellen:
#include// ... std::ifstream testFile("testfile", std::ios::binary); std::vector fileContents((std::istreambuf_iterator (testFile)), std::istreambuf_iterator ());
Optimieren für Neuzuweisungen:
Wenn die Minimierung von Speicherneuzuweisungen von entscheidender Bedeutung ist, weisen Sie Platz im Vektor zu, bevor Sie den Dateiinhalt laden :
#include// ... std::ifstream testFile("testfile", std::ios::binary); std::vector fileContents; fileContents.reserve(fileSize); fileContents.assign(std::istreambuf_iterator (testFile), std::istreambuf_iterator ());
Durch die Verwendung von Stream-Iteratoren und die Vorabzuweisung von Speicher bei Bedarf ermöglichen diese Ansätze ein effizientes Laden von Dateien in einen std::vector
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3