D'une part, tu vas avoir des surprises si tu commences à appeler manuellement des destructeurs dans ton code.
Ensuite, ton vecteur à sa destruction va effectivement appeler le desutrcteur de chacun des éléments qu'il stocke, mais C* est un type qui ne connait pas la durée de vie de la donnée qu'il pointe, donc par défaut, il va la laisser intacte. Dans ton cas, ca se traduit par une fuite mémoire. C'est pour ca que je te recommandais plus haut d'utiliser des types de pointeurs plus évolués (unique_ptr ou shared_ptr) parce qu'en les utilisant, tu rends explicite la durée de vie de ta donnée, et donc ton pointeur pourra détruire la donnée tout seul si c'est approprié quand ton vecteur est détruit.
Mais j'insiste : dans tous les cas, tu ne dois pas appeler le destructeur de ton vecteur à la main. C'est quelque chose qu'on fait dans des cas très précis (en général, quand on écrit des allocateurs)
---------------
last.fm