
Hi Eugene,
You probably do not need to "assume a dynamic array implementation which grows on both the sides" since you are going to implement the container, thus you can choose whatever implementation you want so long as you can appropriately specify the interface and requirements.
Thanks for clarifying that. Since we can use any implementation for this, (which satisfies the requirements and an appropriate interface of course), I suggest using a dynamic array which grows on both sides. With this implementation, we could easily provide a function like reserve(x,y) which reserves x units of memory in the front and y units at the back. I would like to request your and other boost developers/users feedback on this approach. Also, with a list of blocks approach, wouldn't it be rather difficult to provide amortized O(1) random access? Regards Satyam