Есть иерархия классов: class polygon-базовый; class rectangle и class triangle - производные. Храню объекты в векторе: vector<polygon*> array. Нужно с помощью "алгоритмов языка С++" и используя обязательно istream_iterator и лучше чтобы операторы цикла не были использованы

, реализовать ввод объектов вектора из внешнего файла. Т.е. что-то вроде вот этого надо сделать:
Код:
ifstream ifs("source.txt");
vector<polygon*> array;
copy(istream_iterator(ifs),istream_iterator(),back_inserter(array));
Только понятно что, то что я написал - это чушь

Вобще не понимаю как так можно сделать???
