# [racket] Racket newbie questions

Hi John,
2013/5/7 John Gateley <racket at jfoo.org>
>* Here's a summary of the responses. Thanks to everyone who
*>* replied. My comments are in [ and ]. Not much new though.
*>*
*>>*
*>>* 5) Is there an implementation of vectors that can change in size?
*>>* Like C++'s std::vector?
*>>*
*>*
*>*
*>* http://docs.racket-lang.org/**data/gvector.html<http://docs.racket-lang.org/data/gvector.html>
*>*
*>* [This is close, but I don't see an operation to explicitly grow the
*>* vector, other than adding one element at the end. For some algorithms,
*>* you want to grow the vector exponentially - doubling the size instead
*>* of adding one element.]
*
That is exactly what happens behind the scenes.
A gvector is implemented as a structure containing a vector v
and a number n. The vector holds the elements in the gvector and
n represents the number of elements used in the vector n.
Each time the vector v is filled, a new vector of the double size
is allocated and the elements are copied into the new vector.
The exact details can be studied here:
https://github.com/plt/racket/blob/master/collects/data/gvector.rkt
--
Jens Axel Søgaard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20130507/0db590c0/attachment.html>