On Thu, 04 Mar 2010 04:02:46 -0500, KF <[email protected]> wrote:
I hope this is the right place to post it.
In my work, I often need to add elements at the end of dynamic arrays
and remove them from the end. This incremental changes would most
conveniently be performed by a~=e for addition of e at the end of a, and
say a=a[0..$-1]. Unfortunately, ~= always creates a copy and
is thus too time consuming.
No, it does not create a copy. a = a ~ e always creates a copy, a ~= e
appends in place if possible. This still will be slower than appender,
but in the next release of DMD it will be much faster than the current
release.
With the next release of DMD, a = a[0..$-1] will shrink the array, but the
next append to a will reallocate. There will be a function to get around
this, but use it only if you know that the data removed from the end isn't
referenced anywhere else.
-Steve