Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Suppréssion element dans tableau de pointeur [résolue]  (Lu 1298 fois)

0 Membres et 1 Invité sur ce sujet

zimzim

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
Suppréssion element dans tableau de pointeur [résolue]
« le: Mars 09, 2015, 03:23:55 pm »
Bonjour à tous.

J'ai un gros problème.

Dans mon algo, j'ai un vector de shared_prt.

vector<shared_ptr<AcmeEntity>> AcmeEntity;
 

Ras concernant l'insertion et l'itération :)


/* insertion */
auto acme = std::make_shared<AcmeEntity>();
AcmeEntity.push_back(acme);

/* itération */
for (auto&& acme: AcmeEntity)
{
  acme->doBlaBla();
}
 


L’objet a un attribut bool qui passe a true quand on peut le supprimer

for (auto&& acme: AcmeEntity)
{
      if(acme->deleteMe())
     {
           //comment je delete && j'ai essayé
           AcmeEntity.erase(acme); //marche pas
      }
}

 

J'ai essaye d'autre technique avec :

AcmeEntity.erase(start, end, fonction); // plantage totale quand je passe
 
Pareil :(


for (auto&& item = AcmeEntity.begin(); item != AcmeEntity.end();)
        {
                if((*item)->alive == false)
                {
                        AcmeEntity.erase(item);
                }
        }
//replantage de fou
 
et encore Pareil :(


Si quelqu'un a déjà eut se problème ou veux bien m'aider je lui en serai très très reconnaissant.


Merci d'avance



ps: Mon algo fonctionne quand même mais je trouve ça dommage de laisser des objets inactif dans mon tableau



Merci @ vous
« Modifié: Mars 09, 2015, 06:19:37 pm par zimzim »

G.

  • Hero Member
  • *****
  • Messages: 1592
    • Voir le profil
Re : Suppréssion element dans tableau de pointeur
« Réponse #1 le: Mars 09, 2015, 06:05:07 pm »
Ta question n'a rien à voir avec SFML, tu devrais la poser sur un forum généraliste de C++. Ici c'est le forum général de la SFML. ;)

acmeEntities.erase(std::remove_if(acmeEntities.begin(), acmeEntities.end(), [](std::shared_ptr<AcmeEntity> a) {return a->deleteMe();}), acmeEntities.end());

Utilise un erase remove_if.

zimzim

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
Re : Suppréssion element dans tableau de pointeur
« Réponse #2 le: Mars 09, 2015, 06:18:50 pm »
Yesssss

trop fort mec :)


Milles merci , Ça marche nikel !!!!


@+ bonne soirée


ps : OK promis je reviens seulement si c'est en rapport avec SFML :)


 

anything