Equivilent of STL Set in D ? ...
clayasaurus
clayasaurus at gmail.com
Thu Oct 19 12:45:29 PDT 2006
Sean Kelly wrote:
> clayasaurus wrote:
>> Hello, I am converting some C++ code which happens to use STL Set to
>> D. I was thinking of ways to implement set in D, but since I never got
>> much into STL set in C++ I want to make sure I am thinking right.
>>
>> 1) Are D's associative arrays equivalent to STL Set? I've read that
>> Set is pretty much just a sorted associative array, can this
>> functionality be achieved in D (using struct as a key type) by
>> overloading opCmp?
>
> No. D's associative array is implemented as a hash table, which is
> unordered by nature. If you require the elements to be sorted you'll
> either have to use a different container or copy the values to an array
> and sort the array before doing whatever you want to do with the sorted
> values. The word count example does this, for example.
>
Suppose that I don't need sorting, would an associative array work just
as well? I'm looking at the code again and it isn't very clear that
sorting is a requirement, just that I need to have fast insert, lookup
(and if not in container, add it), and deletion.
Then again, if all that was needed was a hashmap, then I wonder why the
author didn't use STL map.
More information about the Digitalmars-d-learn
mailing list