找回密码
 加入
搜索
查看: 1568|回复: 2

[效率算法] 二维数组中制定插入一行,如何操作?【已解决】

[复制链接]
发表于 2016-7-14 08:31:42 | 显示全部楼层 |阅读模式
本帖最后由 blue_dvd 于 2016-7-14 09:45 编辑

想在给定二维数组中插入一行,比如插入到第2行
#include <Array.au3>

Local $aArray_Base[10][3]
For $i = 0 To 9
        For $j = 0 To 2
                $aArray_Base[$i][$j] = $i & " - " & $j
        Next
Next
_ArrayDisplay($aArray_Base, "2D - Original")


; Insert 1D array
$aArray = $aArray_Base
Local $aFill_1D[3]= ["Above 2", "2-1", "2-2"]


_ArrayDisplay($aArray, "插入第二行")
发现数组函数中没有这样的函数,可能也不会用,希望高手指点,谢谢!
发表于 2016-7-14 08:58:35 | 显示全部楼层
本帖最后由 nmgwddj 于 2016-7-14 09:00 编辑

我没太研究过 AU3 有没有官方函数或UDF可以实现这个功能。

数组在声明的时候就是定长的,只不过 AU3 包装了一层后让你觉得他是一个动态可以变长度的。实际上动态增长或减少的时候,是重新分配的新的内存来产生一个新的数组(也有可能是原数组一次性申请一个较大空间向里面增加数据,C++ STL 中 vector 就是这样实现的)。

若想在指定位置增加一个元素,你自己实现是需要把数组从指定位置拆开,把拆开后的前一段+新元素+后一段拼接起来产生一个新数组,这样来实现。
 楼主| 发表于 2016-7-14 09:45:21 | 显示全部楼层
自己搞定了,用函数库
_Array2D_Insert($avArray,0, $aUpdate2, Default, 0, 0)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-11 18:55 , Processed in 0.073964 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表