Is there library to do in place modification of dynamic arrays?
Nick Treleaven
nick at geany.org
Fri Dec 19 12:31:29 UTC 2025
On Friday, 19 December 2025 at 12:21:16 UTC, Brother Bill wrote:
> I notice that std.algorithm and std.algorithm.mutate return a
> new dynamic array.
> Are there any libraries out there that do modifications in
> place?
>
> For example, for dynamic array items
>
> ```
> int[] items = [ 10, 20, 30, 40 ];
>
> // Library call to do in place mutations of items dynamic
> array, without any new allocations
> items.remove(1);
>
> assert(items == [10, 30, 40];
> assert(items.length == 3);
> ```
It does modify elements in-place, it doesn't modify
`items.length`. Do `items = items.remove(1);`.
> Note that remove does not change the length of the original
> range directly; instead, it returns the shortened range. If its
> return value is not assigned to the original range, the
> original range will retain its original length, though its
> contents will have changed
https://dlang.org/phobos/std_algorithm_mutation.html#remove
More information about the Digitalmars-d-learn
mailing list