Re:Double-ended vector – is it useful?
by thomasahle on Monday May 23, 2016 @07:25AM
(#11753123)
There are many ways one might implement a circular buffer, that's not really important. The point is that you should use the standard names, so people may easily compare your "Double-ended vector" to the state of the art.
Yes, there are, but in my opinion, for it to be a circular buffer, it should wrap the end of the data back round to the front when the end of the queue reaches the end of the buffer.
Inserting 4 into:
[x, x, x, 1, 2, 3]
Produces: [4, x, x, 1, 2, 3]
In a circular buffer, and: [x, 1, 2, 3, 4, x]
In the proposed "double-ended vector". The technique is different, the amortized complexity is also different. I think therefore, it warrants a different name, to avoid confusion.
My intuition is that a circular buffer would be better though, because it would not have to do any large scale moves of memory until it came time to reallocate.