Removing elements from dynamic arrays?
sean at f4.ca
Mon Oct 30 09:24:11 PST 2006
Chris Nicholson-Sauls wrote:
> Bill Baxter wrote:
>> How do I remove an element from a dynamic array?
>> int a = [1,2,3,4,5];
>> I tried every syntax I could think of:
>> a = void;
>> a[3..4] = void;
>> a[3..4] = a[3..3];
>> a = ;
>> a[3..4] = ;
>> delete a;
>> delete a[3..4];
>> The last one compiles, but fills a with garbage.
>> I hope the answer isn't:
>> a = a[0..3] ~ a[4..length];
> Assuming you mean remove as in extract and throw away the item at a
> given index, then yes that last one is the only way. In Cashew this is
> abstracted to array.removeIndex(size_t). I really can't think of any
> other way it could be done, though...
> Except for maybe:
> # a[3 .. a.length - 1] = a[4 .. a.length];
> # a.length = a.length - 1;
Unfortunately, I think this is illegal. See my thread in this group
entitled "Removing an array element in order."
More information about the Digitalmars-d-learn