Я хочу реализовать свой собственный простой векторный класс.Этот вектор должен поддерживать добавление новых элементов (типа T
), даже если зарезервированная память исчерпана.Итак, мне нужно выделить новый блок памяти, скопировать в него элементы и затем освободить старый блок памяти.
Если я создаю блок памяти, используя new T[]
, то я должен освободить его, используя delete[]
, который создаст конструкторы каждого элемента в векторе, который будет вызван.Я не хочу этого, потому что думаю просто скопировать старый вектор, используя memcpy()
.
Итак, я принял решение выделить память, используя new char[]
и использовать размещение нового для заполнения массива.Когда мне нужно перераспределить зарезервированную память, я просто использую memcpy()
в этом блоке памяти и затем освобождаю ее, используя delete[]
.
Это разумное решение?