Philippe Sigaud wrote: > On Mon, May 31, 2010 at 01:56, Andrei Alexandrescu < > seewebsiteforem...@erdani.org> wrote: > >> On 05/30/2010 04:53 PM, Philippe Sigaud wrote: >> >>> There are some simple containers I'd like to see in std.containers: >>> >>> - a priority queue >>> - a heap >>> >> >> What's the difference between the two? >> > > Looking at some old code of mine, not much. Once you have a BinaryHeap, a > PriorityQueue!(Payload,Priority) is just a BinaryHeap!(Tuple!(Payload, > Priority)) > with a sorter acting on the tuple's second field and front() (or whatever > it's called for containers) returning the first field. > And, of course, nice creating functions. > > So, heap is the basis, priority queue is just a nice wrapper. But I want > nice wrappers! They are easy to code, and gives joe phobos what he wants. > > > >> >> - a stack, a queue >>> >> >> These are adaptors over other containers, I agree they should be in. >> > > Yes, an adaptor with a default implementation. Do you consider built-in > arrays (not slices) to be containers? > > > >> >> - a set >>> >> >> Yah, though I want std.container to focus on implementation, not policy. >> > > Please, a set, please, a set! > I mean, where would you put it otherwise? > > > > Philippe
I also think a set would be highly usefull, and when defining it pleas don't let the set operations (union,intersection,maybe complement) be defined. I recently was writing some c++ code and got a nasty preformance hit from not finding a fast set union operation.