Должны ли мы удалять до или после стирания для указателя в векторе?

Должны ли мы удалить до или после erase . Насколько я понимаю, оба в порядке. Это правильно?

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

std::vector<foo*> bar;
...
for (vector<foo*>::iterator itr = bar.begin(); itr != bar.end(); itr++)
{
   delete (*itr);  //before OR
   bar.erase(itr);
   delete (*itr);  //after???
}
5
задан Brian Tompsett - 汤莱恩 9 July 2015 в 15:11
поделиться