Всем доброго времени суток.
У меня есть два класса (для краткости все методы класса я сюда не кидал, т.к. не несут информационной нагрузки):
class Checklist
{
public:
	friend ostream& operator<<(ostream& stream, Checklist& obj);
	friend istream& operator>>(istream& stream, Checklist& obj);
private:
	string position;
	double percent;
};
В этом классе функции вставки и извлечения перегружены так:
ostream& operator<<(ostream& stream, Checklist& obj) {
 stream<<obj.position<<'\n'<<obj.percent;
 return stream;
}
istream& operator>>(istream& stream, Checklist& obj) {
 stream>>obj.position;
 stream>>obj.percent;
 return stream;
}Есть второй класс. В нем вектор из элементов первого класса:
class Employee
{
public:
	friend ostream& operator<<(ostream& stream, Employee& obj);
private:
	int number;
	string surname;
	string firstname;
	string post;
	double avPercent;
	vector <Checklist> checklists;
};
В этом классе функция вставки перегружена так:
ostream& operator<<(ostream& stream, Employee& obj) {
 stream<<obj.number<<'\n'<<obj.surname<<'\n';
 stream<<obj.firstname<<'\n'<<obj.post<<'\n';
 stream<<obj.avPercent<<'\n';
 int checklistCount=obj.checklists.size();
 if(checklistCount>0)
	for(int i=0; i<checklistCount; i++)
		stream<<obj.checklists[i]<<'\n';
 stream<<'\n';
 return stream;
 }В функции main есть вектор из элементов класса Employee. Он там заполняется и сохраняется в файл (см. в аттаче).
В общем, вопрос вот в чем. Как мне потом из этого файла правильно заполнить вектор из объектов класса Employee. Надо сначала как-то узнать сколько записей в файле (каждая новая запись разделена пустой строкой). И еще требуется правильно заполнить вектор элементов класса Checklist.
Надеюсь вопрос понятен. Подскажите как решить проблему. 
Спасибо