VB 的动态数组是如何工作的? (即使用 C 进行 VB 动态数组的实现思路)。

发布于 科技 2024-08-05
10个回答
  1. 匿名用户2024-01-31

    原理和std::vector是一样的,如果在调光时重新分配内存,原来的东西就会被复制过来,随机存取性能当然会保持不变。

    在 C++ 中,只需使用 std::vector 即可。

  2. 匿名用户2024-01-30

    动态数组创建]。

    dim ulove() as string '这是一个字符串数组。

    动态数组初始]。

    为了能够保证动态数组在动态中是正常的,我的经验是,在定义动态数组之后,在使用它们之前,首先:

    redim ulove(0)'这假定默认下标最小值和当前最大值均为 0; 如果程序中有选项基数 1

    ,将“0”更改为“1”。

    动态数组变化]。

    此命令如下:redim ulove(数字变量 a)。

    此命令会将数组转换为上限 = 数值变量 a 的数组。 但是,原始数据将丢失。

    preserve

    此命令如下:redim preserve ulove(数字变量 b)。

    此命令将数组的上限设置为等于数值变量 b,但不清除小于或等于数值变量 b 的元素的值。

    动态数组清空]。

    擦除功能。

    erase(ulove)' 清除数组中的数据和上限大小,数组返回到最小上限(参考选项基值,如果有) [这是个人推论,因为没有影响编程,所以没有经过验证。 】

  3. 匿名用户2024-01-29

    VB 是一种非常低效的语言,其目的是让非软件专业人员更容易使用它。

    动态阵列不是一种先进的技术,其实现效率低下:

    调整数组大小时,VB 会将连续区域重新应用于原始内容。

    复制它并释放原始空间显然是一种低技术含量且效率低下的方法。

  4. 匿名用户2024-01-28

    容器(如 C++ 向量)具有 lz 所需的功能。

  5. 匿名用户2024-01-27

    一旦定义了动态数组,就无法调整其大小,而动态数组可以随时调整其大小。

  6. 匿名用户2024-01-26

    VB中的动态数组可以随时调整大小,而静态数组只能预先调整大小,过度使用这种方法会导致内存运行环境变慢。

    Visual Basic 中有两种类型的数组:固定大小的数组(始终保持相同的大小)和动态数组(其大小可以在运行时更改)。

    在 Visual Basic 中,动态数组是帮助您高效管理内存的最灵活、最方便的方法。 例如,可以在短时间内使用大型阵列,然后在不使用该阵列时为系统释放内存空间。

    如果不使用动态数组,请声明一个尽可能大的数组,然后擦除不必要的元素。 但是,如果这种方法使用过多,会导致内存的运行环境变慢。

  7. 匿名用户2024-01-25

    静态数组:数组有有限长度,动态数组:长度有限,然后一个一个地增加!

  8. 匿名用户2024-01-24

    除了楼上说的,还有一点是静态效率高。

  9. 匿名用户2024-01-23

    定义数组后,为了使用数组,必须为数组分配所需的内存区域。 根据内存区域分配的时间,数组可以分为静态数组和动态数组。 编译时需要分配内存的数组通常称为静态数组,需要在运行时分配的数组称为动态数组。

    当程序不运行时,动态数组不占用内存,因此该内存可用于其他操作。

    在 VB 中定义动态数组通常分为两步:首先在表单层或具有 dim、private 或 public 的标准模块中声明一个没有下标的数组(括号不能省略),然后在此过程中使用 redim 语句定义带有下标的数组。

    redim 语句的目的是重新指示数组的大小。 它仅在程序执行 redim 语句时分配存储空间。

    格式:redim(数组名称)(下标)[as (type)]。

    功能:更改动态阵列的大小和存储空间。

    考试说明:

    1)下标可以是常量,也可以是具有确定值的变量。

    2)语句中参数的含义与用dim定义数组的语句相同。

    3)redim语句只能用于动态数组,它可以改变每个维度的大小,但不能改变维度的数量。

    4)编译程序时,redim语句中的所有数组都被描述为动态数组。当执行 redim 语句时,新的上限和下限将重新分配给数组,数组元素的值将被初始化,所有数值元素的值将设置为 0,字符串元素将设置为空字符串。 文件混乱。

    5) redim 语句可以像 dim 语句一样定义数组。redim 语句也可以在同一程序中多次使用。 使用中:

    在 redim 语句重新定义作弊数之前,您可以使用 :erase 语句删除原始数组。

  10. 匿名用户2024-01-22

    使用 preserve 关键字。

    redim preserve a(ubound(a) +3)。

    例如,运行时重新定义了 a 的下标范围,但数据过多可能会影响将 a() 调暗为整数的效率'首先定义一个空数组 s = array(1, 2, 3, 4, 5, 6, 7, 8, 9)。

    j = 1for i = 0 to ubound(s)if s(i) >2 and s(i) <6 thenredim preserve a(1 to j) '更新 a 的下标范围 a(j) = s(i)。'将满足条件的元素保存到新的数组元素中,注意只能为一个元素赋值。

    j = j + 1 '修改数组下标以存储下一个元素 msgbox s(i)。

    end if

    next i

    最后,a(1)=3 a(2)=4 a(3)=5

相关回答
9个回答2024-08-05

定义数组后,为了使用数组,必须为数组分配所需的内存区域。 根据内存区域分配的时间,数组可以分为静态数组和动态数组。 编译时需要分配内存的数组通常称为静态数组,需要在运行时分配的数组称为动态数组。 >>>More

10个回答2024-08-05

我不太明白你的意思,因为我还没有画过矢量图,但我可以告诉你: >>>More

4个回答2024-08-05

请注意,在 C 中,指针变量上的 +1 不会使其地址值为 +1,而是将该类型的一个变量的长度相加,例如声明双精度 *a; a+n 的值是 a 的地址值加上 n 个双精度类型变量的字节长度; >>>More

4个回答2024-08-05

将电信号转换为声音信号。

7个回答2024-08-05

冰箱的工作原理如下:

冰箱的种类很多,但分为以下几类:压缩式冰箱、吸收式冰箱、半导体冰箱、化学冰箱、电磁共振冰箱、太阳能冰箱、绝热退磁冰箱、辐射制冷冰箱、固体制冷冰箱。 >>>More