TTT*_*TTT 3 c++ memory language-lawyer
当您使用 解除分配数组时delete [] name,这是否需要通过遍历数组并删除其中的所有内容来花费 O(N) 时间,还是仅删除数组本身?
要看。
如果存储在 中的类型有一个析构函数name,那么是的,每个析构函数都被运行,然后内存被释放。假设析构函数在 O(1) 时间内运行,这将是一个 O(N) 过程。
如果它是没有析构函数的类型(例如原始类型),则内存将被释放(大概在 O(1) 时间内,尽管我没有看到任何与此相关的标准保证)。