將檔案讀入std::vector
將檔案讀入std::vector
其中一個方法是利用 std::istreambuf_iterator 類別中的迭代器。這種方法消除了不必要的副本並允許直接存取文件的內容。這種方法的規範形式是:
#include<iterator> // ... std::ifstream testFile("testfile", std::ios::binary); std::vector<char> fileContents((std::istreambuf_iterator<char>(testFile)), std::istreambuf_iterator<char>());
為了防止重新分配,請考慮預先在向量中保留空間:
#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>());
以上是如何在沒有不必要的開銷的情況下有效地將檔案讀入 std::vector ?的詳細內容。更多資訊請關注PHP中文網其他相關文章!