Создание вектора с помощью istream_iterators

Я вспоминаю, как однажды увидел умный способ использования итераторов для чтения всего двоичного файла в вектор. Это выглядело примерно так:

#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 , передавая итераторы ввода, которые определяют весь поток. Проблема в том, что я не уверен, что передать в качестве конечного итератора.

Как создать istream_iterator для конца файла? Я совершенно не помню эту идиому?

13
задан Adrian McCarthy 12 December 2010 в 18:54
поделиться