Revamping associative arrays

Steven Schveighoffer schveiguy at yahoo.com
Tue Oct 20 05:49:28 PDT 2009


On Sat, 17 Oct 2009 14:58:08 -0400, BCS <none at anon.com> wrote:

> Hello Chris Nicholson-Sauls,
>
>> Andrei Alexandrescu wrote:
>>
>>> Associative arrays are today quite problematic because they don't
>>> offer any true iteration. Furthermore, the .keys and .values
>>> properties create new arrays, which is wasteful.
>>>  Another issue with associative arrays is that ++a[k] is hacked, which
>>> reflects a grave language limitation. That needs to be replaced with
>>> a true facility.
>>>  Any other issues with AAs that you want to see fixed, and ideas
>>> guiding a redesign?
>>>  Thanks,
>>>  Andrei
>>>
>> Idea: the .keys and .values properties, rather than creating arrays,
>> could create iterable ranges with the smallest possible footprint,
>> internally walking the tree structure.
>>
>
> what will this do?
>
> foreach(key; aa.keys)
>    if(Test(key))
>       aa.remove(key);
>

http://www.dsource.org/projects/dcollections/docs/current/dcollections.model.Iterator.html

Search for Purgeable.

I always hated that limitation of not being able to remove elements while  
iterating.  It's one of the things I always despised about Java and C#  
iteration compared to C++.

-Steve



More information about the Digitalmars-d mailing list