Ярлыки

вторник, 12 апреля 2011 г.

C++ удаление объектов из вектора



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

Комментариев нет:

Отправить комментарий