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: