我最近阅读了关于安置新的信息,我想在我的一项作业中使用它。我不允许使用 stl 容器,所以我想制作一个类似容器的矢量。所以假设我在一个数组中预先分配了 10 个插槽来存储我的对象,然后用户添加了 11 个项目。我如何使用placement new 来存储前10 个对象,只需将它们复制到数组中,然后初始化一个新对象并将其添加到向量中?
我用于额外分配空间的当前代码是这样的:
template <class T>
void Vector<T>::allocMem(int objects)
{
T *_new_data = new T[2*capacity];
for(int i = 0; i < size(); i++)
{
_new_data[i] = _data[i];
}
delete [] _data;
_data = _new_data;
capacity = 2*capacity;
}
取而代之的是,我想添加新位置的使用。