Bonjour

Je suis en train d'utiliser std::set pour gérer un ensemble de personnes. Disons que j'ai une classe personne avec un entier décrivant le numéro de téléphone. J'utilise ce numéro de téléphone comme clé pour comparer deux personnes dans l'ensemble (p1 < p2 <=> p1.tel < p2.tel). J'insère donc les personnes au fur et a mesure avec la méthode insert
Le problème survient lorsqu'une persone change de numéro de téléphone (je simplifie l'écriture)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
iterator i=personnes.find(numéro);
if(i != personnes.end()) i->SetNuméro(nouveau_numéro);
Mais la bien sur la personne n'est plus au bon endoit dans l'ensemble.
Je voudrais donc savoir quelle est la meilleure solution selon vous:
-Continuer ainsi, mais en enlevant et en réinsérant l'objet à chaque fois
-Utiliser comme clé quelque chose qui ne change pas (mais ce n'est pas toujours possible...)