Я помню, как однажды увидел умный способ использования итераторов для чтения всего двоичного файла в вектор. Это выглядело примерно так:
#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;
}
Идея состоит в том, чтобы использовать конструктор диапазона tтератора vector
, передавая итераторы ввода, которые определяют весь поток. Проблема в том, что я не уверен, что передать для итератора конца.
Как вы создаете istream_iterator
для конца файла? Я полностью забываю эту идиому?