Dovremmo eliminare prima o dopo erase
. La mia comprensione è che entrambi stanno bene. È corretto?Dovremmo cancellare prima o dopo la cancellazione di un puntatore nel vettore?
Inoltre, è possibile che non si voglia eliminare l'elemento durante la cancellazione? Credo che ci deve essere, altrimenti, il erase
sarà felice di assumersi la responsabilità.
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???
}
intendi 'std :: vector' –
sellibitze
grazie. corretto. – pierrotlefou
Credo che tu abbia anche 'iter ++', altrimenti il ciclo non terminerà. – Naveen