删除[]是否在O(N)时间内运行



使用delete [] name解除分配数组时,是通过循环遍历数组并删除其中的所有内容来花费O(N(时间,还是只删除数组本身?

取决于。

如果name中存储的类型有一个析构函数,那么是的,每个析构函数都会运行,那么内存就会被释放。假设析构函数在O(1(时间内运行,这将是一个O(N(过程。

如果它是一个没有析构函数的类型(例如,基元类型(,那么内存将被释放(可能在O(1(时间内,尽管我看不到任何与此相关的标准保证(。

最新更新