Array Design Idea
Robert Fraser
fraserofthenight at gmail.com
Mon Dec 10 12:51:01 PST 2007
Craig Black wrote:
> I know that there has been discussion about the possibility of changing
> arrays to use two pointers insead of a pointer and a size. Since this idea
> seems to be on the table, I though I would share another related idea. I
> have written my own array template class in C++ a long while ago and I
> thought I would share my design because it has worked well for me and is
> quite efficient.
>
> There are three things that need to be stored for a resizable array: the
> pointer to the array, the size, and the capacity. My array implementation,
> both the size and the capacity are stored on the heap with the array. There
> is only one heap allocation, and the first 8 bytes are reserved for the size
> and capacity values. Further, there is no heap allocation if the array is
> empty. If the array is empty, then the pointer is null, and the array is
> assumed to have a size and capacity of zero, so there is no need to store
> the size or capacity of an empty array.
>
> This means that an empty array is just a null pointer. This is beneficial
> for my purposes because arrays are used a lot in my code, and about half of
> them end up being empty. So storing an empty array efficiently is a good
> thing. I have been using this system for a long time and haven't had any
> problems with it.
>
> -Craig
>
>
If you're looking for super-fast dynamic arrays...
http://judy.sourceforge.net/
More information about the Digitalmars-d
mailing list