Inside STL: The vector -- Raymond Chen
The C++ language comes with a standard library, and although implementations are welcome to implement the library types in whatever manner they choose, they are constraints imposed by the standard which often force one of a small number of possible implementations.
Inside STL: The vector
By Raymond Chen
The std::vector is one of those types which is constrained to the point that there’s really only one viable implementation.
Internally, a std::vector basically looks like this:
template<typename T>
struct vector
{
T* first;
T* last;
T* end;
};
The first is a pointer to the beginning of a single memory allocation that holds the vector contents.
The last is a pointer one past the end of the last valid vector element.
The end is a pointer one past the end of the last allocated memory for the vector.
The picture for this is as follows:


Registration is now open for CppCon 2023! The conference starts on October 1 and will be held
Registration is now open for CppCon 2023! The conference starts on October 1 and will be held
In this article, we’d shed some light on the implementation of