>> If I want to continue down the path of using my using my vThrows vector which contains structs with 4 throws and the students name
Outside of the new function, you can do this. Inside this function, you take one of your vector elements having 4 throws, and copy them into 4 vector elements each having one throw. The benefit is that you save a lot of effort in the sorting and matching using the two algorithm STL functions that I used.
So, I think you should accept these lines:
vector<StudentAttempt> dist(...);
sort( dist.begin(), dist.end(), cmpAttempts);
Just loop over your input vector and for each of your input elements, you have four smaller records which you push into the dist vector. One loop transfers the data. Then sort, and you are up-to-speed.