On Friday, 1 April 2016 at 15:39:05 UTC, Jonathan M Davis wrote:
On Friday, April 01, 2016 12:57:12 matovitch via Digitalmars-d
wrote:
On Friday, 1 April 2016 at 12:45:23 UTC, Jonathan M Davis
wrote:
> As it stands, if someone wants a set with Phobos, we have
> RedBlackTree in std.container. So, we actually have sets
> already. But all of that will presumably be getting an
> overhaul with what Andrei has been up to.
I don't know about the implementation of redblack tree in
phobos, but I am willing to bet on a large performance
drawback if you compare it against an optimized hash table
(for example using robin-hood open addressing techniques). And
I guess it is for sorted set (like a heap) with O(log N)
insertion and deletion (although this may be just a
theoretical worry)...Furthermore, the template constraint
indicate the need of a less predicate which you may not need
or want to define.
RedBlackTree is a red-black-tree, so it's a sorted set with
whatever pros and cons come with that. Having a hash set would
have different pros and cons. Ideally, we would have both, and
I expect that we will eventually, but at the moment, we just
have RedBlackTree, but that's more than nothing, and it's
exactly what would be needed for many use cases even if a hash
set were available.
- Jonathan M Davis
Indeed, just wanted to point that out. (I guess that's why the
set was introduced before the unordered one in the c++ stl as
well). I feel like containers are an old topic. Last time I asked
I was told : wait for the allocators. What is the advancement on
this side ? Are there any plan at writing more containers for
phobos ? (I know that I am in the bad position of
complaining...but if there is no obstacle...I am ready to write a
draft of hashset in D, although surely not to phobos standards)