Remove instance from array

Igor Shirkalin via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Aug 5 07:58:46 PDT 2017


On Wednesday, 5 July 2017 at 16:04:16 UTC, Jolly James wrote:
> On Wednesday, 5 July 2017 at 15:56:45 UTC, Igor Shirkalin wrote:
>> On Wednesday, 5 July 2017 at 15:48:14 UTC, Jolly James wrote:
>>> On Wednesday, 5 July 2017 at 15:44:47 UTC, Igor Shirkalin 
>>> wrote:
>>>> On Wednesday, 5 July 2017 at 15:30:08 UTC, Jolly James wrote:
>>>>>> WhatEver[] q = [];
>>>>>>
>>>>>> [...]
>>>>>>
>>>>>> auto i = new WhatEver();
>>>>>> q[] = i;
>>>>>>
>>>>>
>>>>> How does one remove that instance 'i'?
>>>>
>>>> What exactly do you want to remove? After a[]=i your array 
>>>> contain a lot of references to 'i'.
>>>
>>> I would like to know how works: removing
>>>  - the first
>>>  - and all
>>> references to 'i' inside the 'q'.
>>
>> Perhaps, for all references to i it should look like:
>> a = a.filter!(a => a !is i).array;
>
> Thank you! :)
>
>
> But why a containers so complicated in D?
>
> In C# I would go for a generic List<T>, which would support 
> structs and classes, where I simply could call '.Remove(T 
> item)' or '.RemoveAt(int index)'. I would know how this works, 
> because the method names make sense, the docs are straight 
> forward.
>
> Here in D everything looks like climbing mount everest. When 
> you ask how to use D's containers you are recommended to use 
> dynamic arrays instead. When you look at the docs for 
> std.algorithm, e.g. the .remove section, you get bombed with 
> things like 'SwapStrategy.unstable', asserts and tuples, but 
> you aren't told how to simply remove 1 specific element.

I don't know c sharp, but I can tell everything about c++ and 
python. To climb a everest in python you have to know almost 
nothing, in c++ you have to know almost everything. In D you have 
to be smarter, you do not need to climb a everest but you have to 
know minimum to do that. Spend a year in learning and get the 
best result in minutes).


More information about the Digitalmars-d-learn mailing list