私は最近、新しい配置について読みました。私の課題の 1 つでそれを使用したいと思います。stl コンテナーの使用が許可されていないため、ベクターのようなコンテナーを作成したいと考えています。オブジェクトを格納するために配列に 10 個のスロットを事前に割り当ててから、ユーザーが 11 個の項目を追加するとします。配置 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;
}
その代わりに、placement new の使用を追加したいと思います。