Хочу реализовать свой вектор для лучшего понимания работы данного контейнера. Можете объяснить за счет чего происходит "резервирование" памяти в векторе. Сомневаюсь, что там используют malloc, а потом при расширении контейнера placement new. Еще было предположение что просто инициализируется память конструктором по-умолчанию, а затем, снова таки, при расширении происходит обычное присваивание.
P. S. Очень тяжело читать исходники, так как я программирую только год
Как уже упоминалось в комментариях к вопросу, работа с памятью в векторе идёт через аллокатор, которым параметризирован шаблонный класс std::vector. Если он явно не указал, используется аллокатор по умолчанию. Никаких инициализаций конструктором по умолчанию не происходит, т.к. резервирование, а по сути функция std::vector::reserve не должна создавать объекты, её задача лишь подготовить плацдарм (память).
Когда вектор уже содержит какие-то объекты, резервирование при необходимости выполняет перемещение (вызывает перемещающий конструктор) существующих объектов в новую свежевыделенную память.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники