怎样为动态数组插入或删除元素?
比如
var P:TBoundArray; i:integer;setlength(P,10);for i:=1 to 10 do P[i]:=i; //把P弄成1,2,……,10
//数据 初始化for i:=0 to 8 dobegin if i<5 then p[i]:=i+1; if i>=5 then p[i]:=i+2;end;//增添procedureprocedure addNumber;var i:Integer;begin for i:=9 to 0 do if i>=5 then p[i]=p[i-1]; p5]:=6;end;
[解决办法]
用LIST就可以,如果硬是要用数组, 里边用个MOVE
其实LIST也是数组加的MOVE操作
[解决办法]
只能移动后处理
[解决办法]
动态数组是线性队列,因此删除中间一个元素时只能先将改元素之后的所有元素前移一位,再用SetLength相修改动态数组大小。
同理插入一个元素时,必须先用SetLength相修改动态数组大小,然后将要插入位置及其之后的所有元素后移一位,再将要插入的元素赋值到相应位置。
如果要进行大量的删除、插入修改,则应该使用链表,因为链表在删除、插入修改时只涉及该位置前后链接指针内容修改及要删除、插入元素的内存分配,工作量要小多了。
[解决办法]
List加入的是对象的指针
整形变量也是个对象~