Педагогическая (и, следовательно, упрощенная) версия контейнера под названием «Vec» обсуждается в главе 11 замечательной (вводной) книги «Ускоренный C++». То, что они описывают это урезанная версия станд :: вектор, но я думаю, что все еще стоит отметить, что:
1) они реализуют свой шаблонный класс с точки зрения массива,
2) они обсуждают push_back с точки зрения трюка (упомянутого выше) выделения большего объема памяти, чем это необходимо, и возврата для большего количества времени, когда они заканчиваются, и
3) они используют распределитель <T
> для управления памятью. В этом контексте новый оператор недостаточно гибкий, так как он выделяет и инициализирует память.
Повторяю, однако, это не означает, что фактические реализации там просты. Но так как «Ускоренный C++» довольно широко распространен, заинтересованные могут найти в соответствующей главе односторонние векторные объекты, которые могут быть созданы, скопированы, назначены и уничтожены.
EDIT: В соответствующей заметке я только что нашел следующее сообщение в блоге Herb Sutter, в котором он комментирует предыдущее сообщение в блоге Andrew Koenig относительно того, следует ли беспокоиться о непрерывности векторных элементов в памяти: Cringe not: Vectors are guaranteed to be contiguous.
Проверьте метод векторов 'capacity()': http://www.cplusplus.com/reference/stl/vector/capacity/ –