Line 3: Loop 5 times
Line 5: Allocate a new Record instance and assign it to the rec pointer.
Lines 6-8: Input some data to the Record instance.
Line 10: Push the new rec instance onto the students vector by value.
Lines 16-21: Iterate through the vector printing information from each Record iinstace.
BTW: There is a memory leak in this code. Line 5 allocates a new Record instance each time through the loop. This memory is never released. There is no reason Record needs to be dynamically allocated since it is pushed onto the vector by value.
Also, at lne 17, the Record instance is copied. This is unnecessary and inefficient since the Record instance can be accessed by using iter as a pointer.