Méthodes alternatives pour lire des fichiers dans std::vector
Lecture de fichiers dans std::vector
L'une de ces méthodes consiste à exploiter les itérateurs de la classe std::istreambuf_iterator. Cette approche élimine les copies inutiles et permet un accès direct au contenu du fichier. La forme canonique de cette approche est :
#include<iterator> // ... std::ifstream testFile("testfile", std::ios::binary); std::vector<char> fileContents((std::istreambuf_iterator<char>(testFile)), std::istreambuf_iterator<char>());
Pour éviter les réallocations, pensez à réserver au préalable de l'espace dans le vecteur :
#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>());
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!