Il puntatore a Studente non serve, e gli iteratori non c'entrano mentre stai riempiendo il vettore. Se mai li userai per scorrerlo, una volta che lo hai riempito...
Comunque ti ho preparato un semplice esempio per farti vedere il meccanismo:
#include <iostream>
#include <vector>
using namespace std;
class Numero
{
public:
Numero() {};
Numero(int n) {numero = n;}
int getNumero() {return numero;}
void setNumero(int n) {numero = n;}
private:
int numero;
};
int main(int argc, char const *argv[])
{
vector<Numero> vettore;
// creo un solo oggetto, poi lo riutilizzo
Numero num;
// riempio il vettore
for(int i=0; i<10; ++i) {
num.setNumero(i);
vettore.push_back(num);
}
// stampo i numeri che ho inserito
for(unsigned int i=0; i<vettore.size(); ++i) {
cout << vettore[i].getNumero() << endl;
}
cout << endl << "Oppure con gli iteratori..." << endl;
for(vector<Numero>::iterator it = vettore.begin(); it != vettore.end(); ++it) {
cout << (*it).getNumero() << endl;
}
return 0;
}
Prova a guardarlo, poi ci fai sapere se hai altri dubbi.