dynamic array memory allocation
martin
m_dot_hinsch at rug.nl
Wed May 16 01:45:05 PDT 2007
davidl Wrote:
> It's useful. Seperating the concept of capacity and length should be
> considered carefully
>
> > I find myself wondering what actually happens when I create a dynamic
> > array and concatenate items onto it. I think I read in a post that
> > memory will be over-allocated at times to avoid re-allocating.
> >
> > I think it would help out a lot to have an ability to specify
> > over-allocation. Something like
> > uint a = [];
> > a.length = 3:10
> >
> > Where the array length is 3, but you are guaranteed to have memory
> > allocation for 10, so you can be guaranteed that concatenation up to ten
> > will not need to allocate memory. This could help in the situation
> > where there is concatenation in a loop, and the programmer over-sizes
> > the array before the loop and re-sizes after the loop.
>
>
>
> --
> ä½¿ç¨ Opera é©å½æ§ççµåé®ä»¶å®¢æ·ç¨åº: http://www.opera.com/mail/
I can immediately give an example for the usefulness of this from my field:
I'm doing individual-based simulations with many individuals (I'm a theoretical biologist). Typically these individuals reproduce frequently which often involves filling a new array with an unknown number of new objects (if you have discrete generations) or alternatively adding (an unknown number of) objects to an existing array. In C++ being able to do .reserve(large_enough_number) can improve performance considerably.
Martin
More information about the Digitalmars-d
mailing list