【发布时间】:2011-05-24 07:52:29
【问题描述】:
我记得曾经见过一种使用迭代器将整个二进制文件读入向量的巧妙方法。它看起来像这样:
#include <fstream>
#include <ios>
#include <iostream>
#include <vector>
using namespace std;
int main() {
ifstream source("myfile.dat", ios::in | ios::binary);
vector<char> data(istream_iterator(source), ???);
// do stuff with data
return 0;
}
这个想法是通过传递指定整个流的输入迭代器来使用vector 的迭代器范围构造函数。问题是我不确定要为 end 迭代器传递什么。
如何为文件末尾创建istream_iterator?我是不是完全记错了这个成语?
【问题讨论】: