请问TSTRNGLIST.INSERT的效率如何(100分)

  • 主题发起人 主题发起人 我爱PASCAL
  • 开始时间 开始时间

我爱PASCAL

Unregistered / Unconfirmed
GUEST, unregistred user!
会不会造成整体抬移
 
如果不是Insert到最后一项,就会移动(Count - Index)项索引:
procedure TStringList.InsertItem(Index: Integer;
const S: string;
AObject: TObject);
begin
Changing;
if FCount = FCapacity then
Grow;
if Index < FCount then
System.Move(FList^[Index], FList^[Index + 1],
(FCount - Index) * SizeOf(TStringItem));
with FList^[Index]do
begin
Pointer(FString) := nil;
FObject := AObject;
FString := S;
end;
Inc(FCount);
Changed;
end;
 
沙发...顶一个..
 
后退
顶部