Bonjour à tous,
Après les vectors, j'ai découvert les "map" qui sont bien utiles pour utiliser des collections de type cle/valeur.
Cependant, je souhaite supprimer tous les éléments de mes maps à l'aide d'une fonction générique et du for_each() :
Problème ca ne compile pas sur la ligne "p->second" car second n'est pas un membre de p (logique)...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 struct DeleteBitmap { void operator()(std::map<int, BITMAP*>* p) const // on peut modifier le paramètre mais pas le foncteur { libererBitmap(p->second); // fonction qui libère un BITMAP* p = NULL; } }; // son appel serait : for_each(mapTotale.begin(), mapTotale.end(), DeleteBitmap());
Actuellement, j'utilise une boucle mais je préfèrerais le template :
Et cela marche avec la boucle...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 map<int, BITMAP*>::iterator pos; for (pos = mapTotale.begin(); pos != mapTotale.end(); ++pos) { libererBitmap(pos->second); pos->second = NULL; }
Voilà si vous pouviez me débloquer
Merci beaucoup ! et bonnes fêtes de fin d'année![]()
Partager