Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Re: PRIVATE:_Ajout_d'éléments_modifiables_dans_une_table_ de_hashcode_(PR#1244) #3440

Closed
vicuna opened this issue Jul 17, 2002 · 0 comments
Labels

Comments

@vicuna
Copy link

vicuna commented Jul 17, 2002

Original bug ID: 1245
Reporter: administrator
Status: closed
Resolution: not a bug
Priority: normal
Severity: minor
Category: ~DO NOT USE (was: OCaml general)

Bug description

Bonjour Luc,

Voici problème sur lequel j'ai longtemps séché. Je ne crois pas que ce soit
expliqué dans la doc...
J'ai besoin de compter le nombre d'occurrence de motifs dans un ensemble. Un
motif est un tableau, ici à un seul élément. Je parcours mon ensemble, et je
rajoute chaque motif rencontré dans une table.
Le problème, c'est que je réutilise à chaque fois le même tableau: les
différents motifs se mélangent, en tout cas quand la table est petite.

En effet, ce n'est pas indiqué dans la doc, mais ça s'explique facilement:
ce qui est stocké comme clé dans la table de hachage, ce n'est pas une
copie du tableau que tu passes comme second argument à Hashtbl.add,
mais une référence vers ce tableau. Donc, dans ton exemple, toutes
les entrées ont la même clé, car lorsque tu modifies a posteriori ton
tableau, tu modifies toutes les clés qui sont dans la table.
Il est donc en effet nécessaire de faire une copie du tableau avant de
l'utiliser comme clé, ceci pour garantir que les clés ne seront pas
modifiées plus tard.

Amicalement,

  • Xavier
@vicuna vicuna closed this as completed Jul 18, 2002
@vicuna vicuna added the bug label Mar 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant