C++ 锯齿数组

2024年8月28日 | 阅读 4 分钟

引言

C++ 中的数组是存储在单个内存块中的一组相同类型的元素。另一方面,交错数组是一种数组,其中每行的列数可以不同。“数组的数组”交错数组的另一个名称。在本文中,我们将介绍 C++ 中交错数组的定义、用法示例

交错数组的定义

交错数组中的每行可能包含不同数量的列。因为它包含多个数组,每个数组的元素数量不同,所以交错数组有时被称为“数组的数组”。交错数组的元素本身都是数组。

例如,考虑以下交错数组

在最后一个示例中,我们生成了一个由三个独立数组组成的交错数组,其中第一个包含两个元素,第二个包含三个,第三个包含四个。

交错数组的使用

可以通过使用指针的二维数组在 C++ 中创建交错数组。数组的元素都是指向数字数组的指针。使用 new 关键字,我们可以为交错数组的每一行动态创建内存。

以下 C++ 代码演示了如何构建交错数组

在上面的示例中,我们使用指针的二维数组来构造交错数组。使用 new 关键字,我们为交错数组的每一行分配了内存。方括号表示法也已用于访问交错数组的组件。

使用 delete 关键字,我们最终释放了为交错数组预留的内存。为了防止内存泄漏,释放为交错数组分配的内存至关重要。

交错数组示例

让我们看一些交错数组的示例,以便更好地理解它们。

示例 1

交错数组中包含不同长度的数组

输出

1 2
3 4 5
6 7 8 9

此结果表明 C++ 中的交错数组已成功生成并打印。

说明

在此示例中,我们构建了一个包含三个数组的交错数组,其中第一个包含两个元素第二个包含三个元素第三个包含四个元素。对于交错数组的每一行,都使用 new 关键字分配了内存。

之后,使用嵌套的 for 循环打印交错数组的元素。内循环遍历每行的列,而外循环遍历交错数组的行。为了将内循环的输出限制为每行的元素数量,我们使用 i+2 作为停止条件。为了防止内存泄漏,我们最终使用 delete[] 运算符释放了为每行分配的 RAM

示例 2

交错数组中包含不同的数据类型

输出

intArray[0] = 1
intArray[1] = 2
charArray[0] = a
charArray[1] = b
floatArray[0] = 1.1
floatArray[1] = 2.2

说明

在上面的示例中,我们创建了一个包含各种数据类型数组的交错数组。数组通过 void* 指针保存在交错数组中。每个数组都已分配了内存,并且交错数组的相应成员已被授予访问每个数组地址的权限。

通过将 void* 指针强制转换为适当的数据类型,我们可以访问交错数组的组件。例如,使用方括号语法并将 void* 指针强制转换为 int* 指针,我们可以访问 intArray 的第一个元素。为了证明程序运行良好,我们最终返回了 0

结论

在这篇文章中,我们研究了 C++ 中交错数组的定义、用法和示例。交错数组中的每行可能包含不同数量的列。可以使用二维数组来实现交错数组。