Bien le bonjour !

J'ai une petite question sur une libération de mémoire.

Voyez vous, j'ai un objet A contenant un attribut de ce type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
CMap<CString, LPCTSTR, CMapStringToString*, CMapStringToString*&> m_mapOperatorSur;
Je me pose donc la question de comment bien libérer la mémoire des CMapStringToString lors de la destruction de mon objet A.

Naïvement, je serais partis sur un truc dans ce genre là :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
POSITION position = m_mapOperatorSur.GetStartPosition();
CString sKey;
CMapStringToString* mapValue; 
 
while (position)
{
	m_mapOperatorSur.GetNextAssoc(position, sKey, mapValue);
	delete mapValue;		
}
m_mapOperatorSur.RemoveAll();
Mais je doute fort que le résultat effectif soit celui escompté.
Je me demande aussi si un simple RemoveAll(); sur m_mapOperatorSur serait suffisant ou s'il faut aller supprimer à la main toutes les CMapStringToString.

Je suis ouvert à toutes suggestion, idée, remarque et critique =)

Merci à vous.