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).