Должны ли мы удалить до или после 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???
}