以C++声明数组的时间复杂度


以下

代码在C++中的时间复杂度是多少:(请注意,我使用的是gcc,因此len被视为用户的输入(

int array[len]; \array is uninitialized

是O(1(还是O(len(?我有点困惑。

一般来说,对于 POD 类型,时间将是 O(1(。

如果您有用户定义的构造函数(或析构函数,我假设还应考虑释放资源所需的时间(,那么我希望时间复杂度为 O(n(。

如果您可以稍等片刻,我向 Overload 提交了一篇关于自动和动态分配的对象所需的代码大小和执行时间的文章。我预计它会在今年四月推出。

更新:这是已发布的重载文章的链接 没有消息就是好消息

一般规则:

type name[size];

如果你的类型是普通旧数据(POD(,编译器可以在O(1(中调用分配和构造。
否则,对于每个 O(n( 实体都需要显式构造函数调用。

相关内容

最新更新