将文件读入 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中文网其他相关文章!