Hello,

Soit une classe Pouet, et la liste STL suivante, accompagnée de son itérateur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
list<Pouet*> dudule;
list<Pouet*>::iterator iter;
La mémoire pour les Pouet de la liste a été allouée avec des new.

Quelle est la meilleure méthode pour désallouer la mémoire ?

Pour l'instant, j'utilise une boucle qui fait :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
for (iter = pouetList.begin(); iter != pouet.end(); ++iter)
{
    Pouet* dudule = (Pouet*)*iter;
    delete dudule ;
}
Mais d'une part, le transtypage étant à la C, j'aimeras le transformer en static_cast ou en dynamic_cast. Mais lequel utiliser ?
D'ailleurs, un transtypage est-il nécessaire ?

Sinon, ne devrais-je tout simplement pas utiliser des auto_ptr pour mes Pouet ?
J'ai découvert ça il n'y a pas très longtemps, et je ne sais pas toujours dans quels cas il faut l'utiliser.

Merci.