删除数组里的一个或多个指定元素,什么代码效率最高? 要删除的元素数量不确定,可能1个,可能多个,可能0个不知怎么写代码效率最高? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 删除什么数组?如果是动态数组,可以这样:var a: array of Integer; i: Integer; s: string;begin // 初始化 SetLength(a, 10); for i := 0 to 9 do a[i] := i; // 删除从2开始的3个元素 Move(a[2 + 3], a[2], 10 - 3 - 2); SetLength(a, 7); 更正,Move句有错: Move(a[5], a[2], (10 - 3 - 2) * Sizeof(Integer)); 既然你说不确定而且不是连续性的,那么删的事先你肯定知道要删哪个,直接删不就完,如果多的话那么就把需要删的序列再弄成数组,然后一个for循环读这数组根据里面的序列删. 再怎么优化,删除动态数组元素无非移动和重组2种方式,十几几十个元素的数组元素删除怎么操作都不会影响程序多大效率,再者Move移动元素效率本来就相当高了,真不知楼主到底要怎么样。 50Mbyte上数组可以用非常规手段优化,你这个实在没优化的必要. 而且不知道楼主想实现什么东西,其实换个思维方式也许不用直接删除也能实现.思维不要僵硬. Delphi XE2 生成的 exe 文件太大 硬件在进步 软件在退步 怎样把Unicode码转变成汉字 请问XML文件怎么解析??200分决不食言 大家快进所有分都送很简单的(在线等) 如何创建一个文件夹? 关于MIDAS的问题,两层改三层 ◎◎◎关于曲线的问题!◎◎◎ 请大家帮帮忙!这个语句能通过吗? 高手们,怎样把汉字转化成虚拟键盘可以接受的byte啊!!有知道的么???加分了! 欲哭无泪:多年来的资料全部被格了 我这条件能否找着工作??
var
a: array of Integer;
i: Integer;
s: string;
begin
// 初始化
SetLength(a, 10);
for i := 0 to 9 do
a[i] := i;
// 删除从2开始的3个元素
Move(a[2 + 3], a[2], 10 - 3 - 2);
SetLength(a, 7);
50Mbyte上数组可以用非常规手段优化,你这个实在没优化的必要.
而且不知道楼主想实现什么东西,其实换个思维方式也许不用直接删除也能实现.思维不要僵硬.