1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| using namespace std;
#include <algorithm>
#include <functional>
#include <list>
#include "jeu.h"
/** ... Implémentation de Jeu ... **/
// Supprime les bombes ayant terminé leur explosion
void Jeu :: nettoyer_bombe() {
/* Merci à Laurent Gomila de Developpez.net pour ce bout de code */
// Déclaration d'itérateurs
list<Bombe*>::iterator debut, ite;
// On déplace les éléments à supprimer vers la fin du conteneur
debut = remove_if(this->bombe.begin(), this->bombe.end(), mem_fun(&Bombe::est_terminee));
// On détruit tous les éléments déplacés à la fin
for(ite = debut; ite != this->bombe.end(); ite++)
delete (*ite);
// On retire physiquement du conteneur les éléments supprimés
this->bombe.erase(debut, this->bombe.end());
} |
Partager