Sets, comparateurs et modification de "clé"
Salut,
J'utilise des sets de pointeurs d'objets, et l'unicité de chaque element est garanti par un comparateur qui teste le champ "nom" de ces objets (qui sont des strings STL)
Code:
1 2 3 4 5 6 7
| struct pouet_comparator
{
bool operator()(const Objet * o1, const Objet * o2) const
{
return (o1->nom < o2->nom);
}
}; |
J'ai cru comprendre que la classe Set a besoin du resultat de la fonction "inferieur à", pas seulement pour garantir l'unicité, mais aussi pour les "ranger" (dans l'ordre alphabetique dans ce cas). Jme dis que c'est probablement pour que l'acces soit plus rapide (espece de creation d'index comme dans les BD).
Seulement maintenant, j'aimerais modifier ce champ "nom" apres avoir inseré l'objet dans le set.
Est-ce que c'est sans risques? Car si ils sont rangés par rapport a "nom", l'objet ne sera plus a sa place..
Est-ce que le fait de recuperer un "iterator" (non const) fait que, apres avoir modifié "nom", le set pourra savoir que ca a été modifié et agira en consequence?
Merci