【发布时间】:2020-03-02 08:41:17
【问题描述】:
我发现我们可以像这样将文件的内容读入 std::vector:
ifstream fin(..., ios::in);
std::vector<char> buf(
std::istreambuf_iterator<char>(fin),
std::istreambuf_iterator<char>());
这种方法会不会像我多次调用buf.push_back(); 那样导致大量的内存重新分配?将文件读入std::vector 的最快或最佳方法是什么?
编辑: 顺便说一句,我发现有一种方法可以将文件读入字符串流:
stringstream ss;
ifstream fin(..., ios::in);
fin >> ss.rdbuf();
这种方法会不会有同样的内存重新分配问题?
【问题讨论】:
-
重新分配所花费的时间与 IO 所花费的时间相比是微不足道的。