Associative arrays in D and default comparators
Steve Horne
stephenwantshornenospam100 at aol.com
Thu Sep 7 22:38:38 PDT 2006
On Thu, 07 Sep 2006 14:54:41 -0700, Sean Kelly <sean at f4.ca> wrote:
>Since the AA is backed
>by a binary tree I would expect it determine 'equality' as equivalence
>using opCmp.
There may be special case operations on the AA where opCmp is
unnecessary and opEquals is a little faster.
But... I had got the impression that the built-in associative arrays
were done with hashtables. I think the manual says something about
foreach not enumerating the items in order.
OTOH, I didn't see any kind of 'opHash' or similar.
So - binary trees, then? Red-black, perhaps?
Or are you talking about hash collision handling?
Or have I completely got the wrong idea about something?
>Can someone
>suggest an alternate default implementation for opCmp that solves these
>problems?
Don't know if it helps, but sometimes a consistent-but-arbitrary
ordering can give good keys. For instance, the ordering of hash values
is meaningless, but you can still use it to divide-and-conquer your
data.
--
Remove 'wants' and 'nospam' from e-mail.
More information about the Digitalmars-d
mailing list