將文件高效讀取到std::vector
當尋求將文件讀入std 的最佳方法時: :vector
對於最佳化解決方案,規範方法涉及使用迭代器:
#include <iterator> std::ifstream testFile("testfile", std::ios::binary); std::vector<char> fileContents((std::istreambuf_iterator<char>(testFile)), std::istreambuf_iterator<char>());
在這種方法中,定義了兩個迭代器。一個指向輸入檔案流的開頭,另一個指向結尾。然後透過迭代這些迭代器定義的範圍來建立向量。
為了減少讀取過程中潛在的重新分配,可以使用reserve()方法:
#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中文網其他相關文章!