On Monday, 18 November 2019 at 21:14:53 UTC, Steven Schveighoffer
wrote:
On 11/18/19 3:53 PM, kerdemdemir wrote:
Is there any way to remove list of elements efficiently with a
dynamical array?
It seems kind of silly that it's not allowed, but maybe it will
be possible after the deprecation is removed.
But you could do something like this:
list = list.remove!(a => removeList.canFind(a));
This is going to suck. Because it's O(n^2). Should be O(n + m)
way to do it (assuming you have a sorted index list).
Or is there anyway converting a dynamical array into a form
which is like a AliasSeq?
An AliasSeq is a compile-time construct, and cannot be created
from a runtime array.
-Steve
Thanks for awesome answers man ,
Yes that sucks real hard because unlike that dummy example in my
real case == compression will be too expensive I can't simply use
canFind on every index.
I guess I need to recreate a new dynamical array each time which
is also horrible.
It is a bit weird that such a general case like removing list of
elements does not work.
And I really do not know the real use of [0,1,2,3].remove(1,2,3).
I mean in unit test it looks cool but in real life you will have
dynamically calculated indexes.
Erdem