delete[]在O(N)时间内运行吗?

当您使用 解除分配数组时delete [] name,这是否需要通过遍历数组并删除其中的所有内容来花费 O(N) 时间,还是仅删除数组本身?

回答

要看。

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

如果它是没有析构函数的类型(例如原始类型),则内存将被释放(大概在 O(1) 时间内,尽管我没有看到任何与此相关的标准保证)。

  • @eerorika it would still scale linearly with number of element in the array that is destructed

以上是delete[]在O(N)时间内运行吗?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>