Как перебрать список объектов в C ++

Я очень плохо знаком с c ++ и изо всех сил пытаюсь понять, как я должен пройтись по списку объектов и получить доступ к его членам.

Я пробовал это, где «данные» - это список, а «студент» - класс.

std::list<Student>::iterator<Student> it;
for(it = data.begin(); it != data.end(); ++it){
    std::cout<<(*it)->name;
}

и получить следующую ошибку

error: base operand of ‘->’ has non-pointer type ‘Student’