Я новичок в C++ ... Я делаю несколько классов - один для Student и один для курсов. В курсах добавлен «список», который добавляет студенческие объекты.Удалить объект из списка C++
Я могу добавить студента:
void Course::addStudent(Student student)
{
classList.push_back(student);
}
Но когда я иду, чтобы удалить студент, я не могу удалить его. Я получаю длинную ошибку о том, что Student не был получен и что-то о operator == (const allocator).
void Course::dropStudent(Student student)
{
classList.remove(student);
}
Любые предложения? Спасибо!
Я имел в виду на этот сайт для того, как добавлять/удалять элементы: http://www.cplusplus.com/reference/list/list/remove/
Student Код:
class Student {
std::string name;
int id;
public:
void setValues(std::string, int);
std::string getName();
};
void Student::setValues(std::string n, int i)
{
name = n;
id = i;
};
std::string Student::getName()
{
return name;
}
Полный код курса:
class Course
{
std::string title;
std::list<Student> classList; //This is a List that students can be added to.
std::list<Student>::iterator it;
public:
void setValues(std::string);
void addStudent(Student student);
void dropStudent(Student student);
void printRoster();
};
void Course::setValues(std::string t)
{
title = t;
};
void Course::addStudent(Student student)
{
classList.push_back(student);
}
void Course::dropStudent(Student student)
{
classList.remove(student);
}
void Course::printRoster()
{
for (it=roster.begin(); it!=roster.end(); ++it)
{
std::cout << (*it).getName() << " ";
}
}
Мы будем нуждаться более подробно. Мы даже не знаем, какой тип объекта classList, или как выглядит функция remove. – dwcanillas
Извините за путаницу, я редактировал мой документ.Надеюсь, это более понятно. – user3281388
Пожалуйста, размещайте точные сообщения об ошибках - не описывайте их. Также нам нужно посмотреть, что состоит из «Студента». Если 'classList' является' std :: list', то 'remove()' требует, чтобы 'Student' требовал оператора равенства (' operator == ') – PaulMcKenzie