void remove(Student &obj) {
std::vector<Student>::iterator it;
for(it=data.begin(); it!=data.end(); it++)
if(strcmp((*it).get_name(),obj.get_name())) {
it = data.erase(it);
--it;
}
--it делается для того, чтобы итератор не указывал на удаленный элемент.
Ещё вариант --
data.erase(std::remove_if(data.begin(), data.end(), <сюда впихни фугнкцию-сравнивалку>), data.end());
link
Комментариев нет:
Отправить комментарий