在C++中,当分配一个数组时,有两件事发生:第一:从自由存储区即所谓的heap中给数组分配内存;(一般占用常数时间)
第二:调用缺省构造函数对数组的每个元素进行初始化。(调用N次)
所以函数的运行时间为nT(T::T())+O(1);
如果是内嵌类型而不需要调用缺省构造函数,那么运行时间就是常数O(1)。
当一个数组被删除时,也会发生两件事:第一:析构函数一个一个地删除数组元素;
第二:将数组占用的内存空间释放,归回给heap。