J'ai un lᅵger doute sur la fonction membre erase( const key_type& k) de la
classe tr1::unordered_map qui renvoie le nombre d'ᅵlᅵments effectivement
supprimᅵs.
Il me semblait que les clefs ᅵtaient uniques, donc il y a-t-il des cas oᅵ
cette fonction retourne autre chose que 0 ou 1 ? J'ai regardᅵ quelques docs
en ligne qui ne sont pas trᅵs claires sur ce point.
Merci d'avance.
unordered_map est le nom standard de multimap. Tu peux y stocker
plusieurs éléments avec la même clé.
--
Michael
unordered_map, c'est le nom standard de hash_map. Et tu n'y peux
stocker qu'un élément par clé. La raison que erase renvoie un
entier, ici, c'est par souci d'orthogonalité : dans
unordered_multimap ou multimap, erase peut bien renvoyer
d'autre chose que 0 ou 1. Et en fin de compte, c'est aussi plus
clair que s'il renvoyait bool : avec bool, on ne sait jamais
exactement ce qui est vrai et ce qui est faux. (Une solution
encore meilleur aurait été de renvoyer succeeded ou failed,
valeurs d'un enum standard. Mais je trouve que le compte, c'est
déjà pas si mal. Maintenant, si seulement l'élément avait des
champs nommés key et value...)
--
James Kanze
Merci c'était très clair.