I have implemented my own linked lists before, so I understand how lists work.
And I can understand how a vector works; it just allocates a heap array and realocates it when it gets full, kind of like realloc, but with constructors and destructors. Right?

But can somebody explain to me how deques work?