语境
我正在尝试实现我的std::vector
模板类版本。向量包含模板参数的动态数组T
:
_vec = new T[n];
显然T
可以是任何类型,指针、类、原始类型。当调用v.resize(4)
一个大小的向量时,6
它显然应该按照本规范删除动态数组的最后 2 个元素(不重新分配数组) :
如果 n 小于当前容器大小,则内容将减少到它的前 n 个元素,删除超出的那些(并销毁它们)。
通过破坏我的意思是,我认为 std 库意味着调用对象的析构函数,或者如果它是包括指针在内的任何其他原始类型,则简单地释放内存空间。
问题:是否有可能(如果有,如何)销毁动态分配的数组中的模板元素而不解除分配和重新分配它?
我尝试了什么?好吧,我真的不知道从哪里开始: