BOnjour... avis au amateur, j'ai trop du mal a jouer avec les container de la STL!

Mon programme doit simuler la reproduction d'entité vivante.

L'entité vivante est un objet LIFE, ou live() renvoie le status : JE_VIS, JE_ME_REPLIQUE, JE_MEURT.

En gros, il s'agit de mettre des Life dans un container, de tester les Life du container dans une boucle, et d' enlever ou d'ajouter une copie dans dans le container en fct du status.


Exemple avec un list!

list <LIFE> listLife;
LIFE lifeDepart;
list.push_back(lifeDepart); //On part d'une entité.

list <LIFE>::iterator it;

While ( temps < tempsMax)
{
for ( it = listLife.begin(); it!= listLife.end(); ++it)
{
int status = it->live();

if ( status == JE_ME_REPLIQUE)
list.push_back(&it);

if ( status == JE_MEURT)
list.remove(it);
}
}


Bon, bien sur ca marche pas!! Car je sais pas trop comment ca marche la liste! J'ai des segment faut et tout!
Et sinon, c'est quoi le mieux pour ce que je fait : list ? vector ? deques?
et encore, comment je peux faire un parcours aleatoire de la liste? Car, si je definit une population Maximum, je vais avoir des entités vivantes avantagée.....Bref, bien compliqué tout ca!!

Bref, si on execute dans la boucle ça :

cout<<listLife.size()<<endl;

Je devrais avoir une suite exponentiel du type:
1,2,4,8,16,32 ....pMax

IDK