我们应该删除之前还是之后erase
。我的理解是两者都可以。这是正确的吗?
此外,是否有任何情况下我们不想在删除元素时删除它?我相信一定有,否则,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???
}