Копируется, потому что подпись этого конструктора выглядит следующим образом:
explicit vector( size_type count,
const T& value = T(),
const Allocator& alloc = Allocator());
Очевидно, что вы просто передаете конструктор по умолчанию этому конструктору, и он копирует его.
Есливы хотите инициализировать в списке инициализаторов, вы, очевидно, ограничены конструкторами некоторых объектов.Полагаю, вам не хотелось бы создавать класс-обертку только для инициализации вектора в списке инициализаторов, так что мы ограничены конструкторами вектора.Единственное, что кажется разумным - это
template <class InputIterator>
vector( InputIterator first, InputIterator last,
const Allocator& alloc = Allocator() );
Таким образом, вы можете создать итератор, который будет возвращать необходимое количество построенных по умолчанию объектов.1011 *