Мне было интересно, как работает вектор в C ++.Когда мы добавляем новый элемент и вектору не хватает места, он выделяет новую память и копирует все предыдущие элементы в новое местоположение.
Теперь, как определяется это поведение?
A* a = new A(prev_a);
скопирует конструкцию в новом месте, выделенном новым.Но для вектора мы должны выделить несколько объектов.Но мы не можем этого сделать, потому что массив new не может иметь аргументов инициализации.
Поэтому мне интересно, как vector это реализует?Я предполагаю, что вектор сначала выделяет память и вызывает конструктор копирования в определенном месте.Как это сделать?Спасибо