Эффективная загрузка файла в std::vector
Для эффективной загрузки файла в std::vector
Канонический метод с использованием итераторов:
Канонический метод подход использует итераторы входного потока для удобного построения вектора из содержимого файла:
#include// ... std::ifstream testFile("testfile", std::ios::binary); std::vector fileContents((std::istreambuf_iterator (testFile)), std::istreambuf_iterator ());
Оптимизация для перераспределения:
Если минимизация перераспределения памяти имеет решающее значение, выделите место в векторе перед загрузкой содержимого файла :
#include// ... std::ifstream testFile("testfile", std::ios::binary); std::vector fileContents; fileContents.reserve(fileSize); fileContents.assign(std::istreambuf_iterator (testFile), std::istreambuf_iterator ());
Используя потоковые итераторы и предварительно выделяя память, когда это необходимо, эти подходы обеспечивают эффективную загрузку файлов в std::vector
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3