gpt4 book ai didi

c++ - C++ 中的动态数组(指针数组还是新数组?)

转载 作者:行者123 更新时间:2023-11-28 07:10:50 25 4
gpt4 key购买 nike

如果我想创建一个动态的对象数组:

我可以使用 new 关键字创建一个数组,其中 C++ 将自动创建一个节点对象数组并为所有节点调用默认构造函数。

node* nodes = new node[10];

或者我可以创建一个指向节点的指针数组并分别实例化节点。

node* nodes[10];

for (int i = 0; i < 10; i++)
{
nodes[i] = new node();
}

什么时候适合使用?在第一个例子中,在数组中使用 new 关键字时,节点是否仍然是动态分配的?

非常感谢!

最佳答案

这两个代码片段之间存在很大差异。

第二种情况,即使用下面的定义

node* nodes[10];

您不能向数组中添加新元素。该数组具有固定大小。

第一种情况,当你对整个数组使用 operator new 时

node* nodes = new node[10];

数组可以重新分配任意数量的元素。

所以主要的标准是你是否需要一个固定大小的数组,底层类是否有默认构造函数。

关于c++ - C++ 中的动态数组(指针数组还是新数组?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21004305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com