The standard STL vector container has a "reserve" function to reserve uninitialized memory that can be used later to prevent reallocations.
How come that the other deque container hasn't it?
Increasing the size of a
std::vector can be costly. When a
vector outgrows its reserved space, the entire contents of the vector must be copied (or moved) to a larger reserve.
It is specifically because frequent
std::vector resizing can be costly that
deque can always add more memory without needing to relocate the existing elements.