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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michael Doubez
On 10 nov, 13:23, Adrien <adrien+ wrote:
Bonjour,
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 effectivem ent 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.
unordered_map est le nom standard de multimap. Tu peux y stocker plusieurs éléments avec la même clé.
-- Michael
On 10 nov, 13:23, Adrien <adrien+n...@saladin.fr.invalid> wrote:
Bonjour,
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 effectivem ent
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.
unordered_map est le nom standard de multimap. Tu peux y stocker
plusieurs éléments avec la même clé.
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 effectivem ent 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.
unordered_map est le nom standard de multimap. Tu peux y stocker plusieurs éléments avec la même clé.
-- Michael
James Kanze
On 10 Nov, 21:04, Michael Doubez wrote:
On 10 nov, 13:23, Adrien <adrien+ wrote:
> 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.
unordered_map est le nom standard de multimap. Tu peux y stocker plusieurs éléments avec la même clé.
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
On 10 Nov, 21:04, Michael Doubez <michael.dou...@free.fr> wrote:
On 10 nov, 13:23, Adrien <adrien+n...@saladin.fr.invalid> wrote:
> 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.
unordered_map est le nom standard de multimap. Tu peux y
stocker plusieurs éléments avec la même clé.
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...)
> 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.
unordered_map est le nom standard de multimap. Tu peux y stocker plusieurs éléments avec la même clé.
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
Adrien
James Kanze wrote:
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...)
Merci c'était très clair.
James Kanze wrote:
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...)
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...)