动态数组2024年8月28日 | 阅读 8 分钟 动态数组与普通数组类似。动态数组可以修改,但区别在于程序运行时。动态数组的元素占用连续的内存块。 一旦数组的创建开始,动态数组的大小就无法更改。所以动态数组与众不同。即使动态数组已经填满,其大小也可以扩展。 在创建数组时会分配预定的内存量。随着动态数组的扩展,其内存大小可能取决于各种因素,所以,如果不是动态数组,则应排除这种情况。 影响动态数组性能的各种因素 数组的性能由其增长因子和初始大小决定。影响性能的因素如下
new 关键字在 C++ 中,使用 new 关键字可以分配动态数组。在方括号对内,指定要分配的项目的必需数量。类型名称应置于此关键字之前。将分配请求的项目数量。 语法 new 关键字的语法如下 语法描述 pointer_var 代表指针变量的名称。 根据以上语法,写入的数据类型应为有效的 C++ 数据类型。 之后,关键字将返回第一个指针。然后在创建动态数组后,可以使用 delete 关键字从语句中删除它。 动态数组分配的一些示例 示例:1输出 Enter the number of items that you want to store: 2 Enter the 2 items that you want to store: 10 11 You entered the following things: 10 11 以上示例代码说明
在上面的示例中,用户可以在程序运行时指定数组所需的任何大小。因此,我们可以从中了解到,数组的大小可以在分配时确定。 已分配动态数组的初始化将数组初始化为 0 是一个简单的过程。 分配的语法 上述语法的描述上述语法显示了要添加到数组的长度中的元素数量。 此位置应为空,因为数组将被初始化为 0。借助初始化列表,我们可以初始化动态数组。现在,我们将创建一个演示此数组的示例。 示例输出 Entered Array elements are: 9 6 12 2 13 上述代码说明
数组重排在分配时,会设置动态数组的长度。一旦分配,C++ 内部就没有用于调整数组大小的内置函数。 通过分配新数组,复制元素然后删除旧数组,我们可以克服这个挑战。在此过程中,可能会发生许多错误,因此我们必须意识到这一点。 动态删除数组一旦数组的目的在计算机内存中完成,就应该删除动态数组。为此操作,delete 语句有助于完成。数组删除后释放的内存空间可用于存储另一组数据。但是,一旦程序终止,即使我们不使用数组,动态分配的数组也会自动删除。 一些要点而不是使用 delete,我们必须使用 delete[] 来从计算机内存中删除动态数组。与其删除一个变量,不如让 CPU 删除多个 变量 []。但是,在处理动态数组时,如果使用 delete 而不是 delete[],可能会出现问题。 数据损坏、内存泄漏、崩溃等是此问题的例子。 示例 输出 Amount of numbers that you will type 3 Type these 3 required numbers 1 2 3 The typed number as follows: 1 2 3 以上示例代码说明
总结在上面的上下文中,我们已将这些要点总结如下
下一主题C++ 中的 STRCMP() |
什么是 C++ STL?在 C++ 中,我们有 STL,也称为 Standard Template Library,它具有大量内置函数,我们可以通过导入库直接使用它们。同样,STL 中有一个 numeric 库,并且...
阅读 3 分钟
C++ 中的智能指针 C++ 编程语言中的智能指针是标准库 (<memory>) 中提供的类模板,它们自动管理动态分配的内存。它们充当原始指针的包装器,但具有底层内存管理功能。这些指针...
阅读9分钟
C++ 实现 Coppersmith Freivald 算法的程序。在本文中,我们将讨论 C++ 中 Coppersmith Freivald 算法的实现。但在深入其实现之前,我们必须了解 Coppersmith Freivald 算法。什么是 Coppersmith Freivald 算法?Coppersmith Freivald 算法是一种随机算法,用于...
阅读 4 分钟
当我们只需要一种可以在 O(Logn) 时间内处理插入、删除和查找最小值的数据结构时,最小堆就派上用场了。在本文中,我们将介绍如何在 C++ 中实现最小堆。一个完全二叉树,它是一个最小堆或……
阅读 3 分钟
C++ 是一种强大且适应性强的编程语言,为开发人员提供了许多功能。对低级编程和性能优化的支持是 C++ 的主要特性之一。C++ 的一个重要组成部分是标准模板库 (STL),它提供了一组...
阅读 4 分钟
回文数是指反转后仍然相同的数字。例如 121、34543、343、131、48984 是回文数。回文数算法 从用户获取数字 将数字保存在临时变量中 反转数字 将临时数字与反转后的数字进行比较 如果两个数字相同,则...
阅读1分钟
简介:由于其动态大小和易用性,vector 是 C++ 中最常用的数据结构之一。它们通过允许您在单个连续内存块中存储和检索元素,为您提供灵活性和快速的元素检索。您将获得一个……
阅读 6 分钟
在本文中,我们将讨论 C++ 中 std::set 和 std::vector 之间的区别。但在讨论差异之前,我们必须了解 C++ 中的 std::set 和 std::vector。什么是 std::vector?vector 是 C++ 中类似动态数组的容器,它可以包含许多元素的...
阅读 2 分钟
在本课中,我们将探讨如何在 C 和 C++ 中显示字符串中元音和辅音数量相同的子字符串。给定一个字符串 S,目标是显示该字符串中具有相等数量的子字符串...
阅读 3 分钟
在 C++ 的广阔领域中,效率和表达能力是重中之重,某些功能常常是隐藏的宝石。标准模板库(STL)中的一个这样的宝石是 std::tie。在本文中,我们将讨论 std::tie,它是一个函数模板,并且具有巨大的...
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India