Вы не можете вызывать конструктор явно.
Вы должны были написать:
while(inf){
string ML,MSV;
inf>>ML>>MSV;
ListOfStudent.push_back(Student(ML,MSV));
}
Следуя совету Хемила, и если вы используете C ++ 11, вы можете избежать создания временного объекта путем прямой передачи аргументов конструктора следующим образом:
while(inf){
string ML,MSV;
inf>>ML>>MSV;
ListOfStudent.emplace_back(ML,MSV);
}
Для такой простой структуры, как ваша, в любом случае это не должно иметь никакого значения, поэтому используйте все, что пожелаете.