我知道这有效:
type _AAAB = array of array of array of byte;
procedure fillArray(var arr: _AAAB; const v: byte); overload;
var
i, j, k: integer;
begin
for i := 0 to High(arr) do
begin
for j := 0 to High(arr[i]) do
begin
FillChar(arr[i][j][0], Length(arr[i][j]), v); // sizeof(byte)=1
end;
end;
end;
但是,如果数组是整数类型,4字节,上面将无法按预期工作。我在这里要做的是加快以下速度:
type _AAAI = array of array of array of integer;
procedure fillArray(var arr: _AAAI; const v: integer); overload;
var
i, j, k: integer;
begin
for i := 0 to High(arr) do
begin
for j := 0 to High(arr[i]) do
begin
for k := 0 to High(arr[i][j]) do
begin
arr[i][j][k] := v;
end;
end;
end;
end;
通过更换内循环......有什么建议吗?有比 FillChar 更快的方法吗?FillChar 用字节填充,所以这里不好。