они приватные, а методы у итератора нельзя вызвать, только деструкторы?
вы про что вообще?
void Group::deleteStudent(int id) { for (auto it = studentsInGroup.begin(), end = studentsInGroup.end(); it != end; ++it) { const auto i = *it; if (i.id == id) { studentsInGroup.erase(it); cout << "Студент " << i.name << "[" << i.id << "] успешно удален" << endl; return; } } cout << "Студента с таким ID не существует" << endl; cout << endl; }
id и name приватные поля
нельзя делать erase при итераровании в таком виде
ну значит сделайте их публичными или сдетайте геттеры
почему? Он же выходит из цикла потом
геттеры есть, но их нельзя вызвать у i
vector<Student> studentsInGroup;
так а как сравнивать по id?
мы можем вызвать метод у итератора, если функция типа Student, но мне не нужно возвращать его в функции deleteStudent(int id);
Обсуждают сегодня