Array length & allocation question
Dave
Dave_member at pathlink.com
Thu Jun 8 11:39:40 PDT 2006
Robert Atkinson wrote:
> Quick question concerning Array lengths and memory allocations.
>
> When an array.length = array.length + 1 (or length - 1) happens, does the system
> only increase (decrease) the memory allocation by 1 [unit] or does it internally
> mantain a buffer and try to minimise the resizing of the array?
>
> I think I can remember seeing posts saying to maintain the buffer yourself and
> other posts saying it was done automatically behind the scenes.
>
>
Setting the array length does just that and nothing more or less. But
using the the array concatenation operator (~) will preallocate some space.
time this:
int[] arr;
for(int i = 0; i < 1000000; i++)
{
arr.length = arr.length + 1;
arr[i] = i;
}
vs this:
int[] arr;
for(int i = 0; i < 1000000; i++)
{
arr ~= i;
}
More information about the Digitalmars-d-learn
mailing list