LINUX.ORG.RU

у тебя и так в одну строчку :)

Не понятно чем тебя не устроил приведенный вариант, в любом случае
без создания временной переменной не обойтись.

Можно как вариант:

ints.push_pack(0);
f >> ints.back();

aton
()

#include <iterator>
#include <vector>
#include <algorithm>
#include <fstream>

int main() {
 std::vector<int> vec;
 std::ifstream f("some_file", std::ios::in);

  std::copy(std::istream_iterator<int>(f), boost::next(std::istream_iterator<int>(f)), std::back_inserter(vec));
}

вроде должно работать, но уж лучше с временной переменной :)

AnToXa
()
Ответ на: комментарий от AnToXa

только вот, насколько мне ведомо, надо еще проверить есть ли в файле вообще что-то, иначе std::istream_iterator<int>(f) - это past-the-end iterator, который не является incrementable -> undefined behaviour :)

AnToXa
()

template<class T> istream& operator >> (istream& s, list<T>& l){
 T dummy; s>>dummy; l.push_back(dummy);
 return s;
}
....
f>>ints>>doubles>>comlplexs>>;

Оно тебе нада?

AIv ★★★★★
()

Попробуй так:

  vector <int> v;
  istream_iterator<int> it(cin);

  v.push_back(*it++);

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.