Javatpoint标志
Javatpoint标志

动态数组:

一个动态数组类似于常规数组。动态数组是可以修改的,但只有在程序运行时才可以修改。一个连续的块内存被动态数组元素占用。

一旦开始创建动态数组,就不能更改数组的大小。这是一个不同于其他数组的动态数组。即使在动态数组已经被填充之后,它的大小也可以扩展。

在创建数组时分配预定数量的内存量。随着动态数组的扩展,它的内存大小在需要的时候可能会受到各种因素的影响,因此排除不适合动态数组的情况。

影响动态阵列性能的各种因素:

阵列的性能是由其生长因子和初始大小决定的。Go Packers影响性能如下:

  • 如果数组中可用的增长因子和大小较小,则会更频繁地重新分配内存。这个因素会降低阵列的性能。
  • 考虑到另一个因素,如果在较大的增长因子和较大的数组的情况下,则数组有大量未使用的内存。由于这个因素,调整大小操作可能需要更长的时间,因此可能会降低数组的性能。

新关键词:

c++,使用新关键字周末在其中分配动态数组。在一对方形桶中,指定了要分配的项目的所需数量。类型名应该在这个关键字之前。请求的项目数量将被分配。

语法:

new关键字的语法如下:

语法说明:

pointer_var为指针变量的名称编写。

根据上述语法,写入的数据类型应该是有效的c++数据类型。

在此之后,关键字将返回第一项指针。然后,在创建动态数组之后,可以使用delete关键字将其从语句中删除。

一些动态数组分配的例子:

例如:1

输出:

输入需要存储的物品数量:2输入需要存储的2件物品:10 11您输入了以下内容:10 11

上述示例代码的说明:

  1. 首先,在我们的节目中,我们将包括Iostream头文件使用它的功能。
  2. 然后,在我们的程序中,我们将包括性病的命名空间为了使用它的类而不调用它。
  3. 之后,我们将调用主要功能。在函数体中,应该添加程序的逻辑。
  4. 然后声明两个变量,比如P和q,为整数类型。
  5. 然后输入的值变量问,我们必须提示用户在控制台上打印一些文本。
  6. 之后,用户从键盘输入的数据将被获取,并将此值赋给变量问
  7. 保持…的总数问整数然后赋值给指针变量*加勒比海盗,你必须为它声明一个数组。
  8. 为了输入条目的队列编号,我们必须为用户打印一条消息。
  9. 然后,将创建一个循环变量P迭代用户输入的项。
  10. 用户输入的元素将被读取并存储在其中arr数组
  11. 然后主体的循环就结束了。
  12. 之后,一些文本将被打印到控制台上。
  13. 之后,我们将使用for循环创建一个循环变量P迭代数组的项。
  14. 然后,将数组中包含的值命名为加勒比海盗将在控制台上打印。
  15. 然后是for循环将会结束。
  16. 成功完成程序后,值应为返回
  17. 最后,结束了主体的主要功能。

在上面的示例中,用户可以在运行数组时指定任何所需的数组大小。因此,我们可以理解,数组的大小可以在分配时确定。

初始化分配的动态数组:

将数组初始化为0是一个简单的过程。

分配的语法:

以上语法说明:

上面的语法显示了要添加到数组中的长度中的元素的数量。

这个位置应该是空的,因为数组将初始化为0。在初始化列表的帮助下,可以初始化动态数组。不,我们将创建一个示例来演示这个数组。

例子:

输出:

输入的Array元素为:9 6 12 2 13

上述守则的解释:

  1. 首先,在我们的节目中,我们将包括Iostream头文件使用它的功能。
  2. 然后,在我们的程序中,我们将包括性病的命名空间为了使用它的类而不调用它。
  3. 之后,我们将调用主要在函数体中,应该添加程序的逻辑。
  4. 然后声明一个变量,比如p整数类型。
  5. 在初始化列表的帮助下,我们将声明一个名为array的数组。5的整数可以保存在数组中。重要的一点在初始化列表和数组长度之间;没有什么用=运算符
  6. 一些文字将被打印出来。的意义endl关键字在c++中是行尾。这个关键字的光标被移动到下一个句子。
  7. for循环将用于迭代遍历数组元素。
  8. 名为array的数组的内容将被打印到控制台上。
  9. 的主体循环将结束。
  10. 因此,在程序成功完成后,它应该返回它的值。
  11. 最后,主要功能到此结束。

数组大小:

在分配时,设置动态数组的长度。一旦分配了数组,c++中就没有内置函数来调整数组的大小。

通过分配一个新数组,通过复制元素进一步擦除旧数组,我们可以克服这个挑战。在这个过程中,可能会出现很多错误,所以我们必须意识到这一点。

动态删除数组:

一旦从计算机内存中完成了数组的目的,就应该删除动态数组。对于这个操作,delete语句有助于完成。删除数组后释放的内存空间可以用来保存另一组数据。然而,一旦程序终止,动态分配的数组可以被自动删除,即使我们不使用该数组。

一些要点:

而不是使用delete,我们必须使用删除[]用于从计算机内存中删除动态数组。而不是一个变量删除多个变量[],指示CPU执行此操作。但是在处理动态数组时,如果使用delete来代替,可能会导致问题删除[]

数据损坏、内存泄漏、崩溃等都是这个问题的例子。

例子:

输出:

你要输入的数字数量3输入这3个需要的数字1 2 3输入的数字如下:1 2 3

上述示例代码的说明:

  1. 首先,在我们的节目中,我们将包括Iostream头文件使用它的功能。
  2. 然后,在我们的程序中,我们将包括性病的命名空间为了使用它的类而不调用它。
  3. 之后我们将调用主要功能。在函数体中,应该添加程序的逻辑。
  4. 然后声明两个变量,比如P和q,为整数类型。
  5. 然后输入的值变量问,我们必须提示用户在控制台上打印一些文本。
  6. 之后,用户从键盘输入的数据将被获取,并将此值赋给变量问
  7. 保持…的总数问整数然后赋值给指针变量*加勒比海盗,你必须为它声明一个数组。
  8. 为了输入q个项目,我们必须为用户打印一条消息。
  9. 然后for循环将创建为变量P迭代用户输入的项。
  10. 用户输入的元素将被读取并存储在数组arr中。
  11. 然后for循环身体将会结束。
  12. 之后,在控制台上将打印一些文本。
  13. 之后我们将使用for循环用于创建循环变量P以遍历数组的项。
  14. 然后,将数组中包含的值命名为加勒比海盗将在控制台上打印。
  15. 然后是for循环将会结束。
  16. 在此之后,将在控制台上打印空行。
  17. 数组的内存加勒比海盗将被释放。
  18. 当程序成功完成时,程序将返回该值。
  19. 最后,对主要功能进行了总结。

简介:

在上述背景下,我们将这些要点总结如下:

  • 有一个固定大小常规大小数组。一旦声明了常规大小的数组,我们就不能改变它们的大小。
  • 在编译期间,内存的大小由这些类型的数组决定。
  • 但是除去这些,动态数组的类型是完全不同的。在运行期间,可以更改此数组的大小。
  • 使用新的关键字在c++中,可以声明动态数组
  • 为了指定项数,我们使用方括号将其存储在动态数组中。
  • 完成操作后,可以借助delete操作符释放内存。
  • 对于所有数组元素,都使用delete操作符[]释放内存。
  • 对于c++数组的大小调整,没有内置的数组机制。

下一个话题 c++中的Strcmp ()





Youtube 视频加入我们的Youtube频道:现在加入

反馈


帮助别人,请分享

脸谱网 推特 pinterest

学习最新教程


准备


热门的技术


b .技术/马华






Baidu
map