0

我在 Delphi 中还有另一个问题TList......我在访问 TList 时遇到了 EArgumentOutOfRangeException,就像我之前所做的一样,在将不同的 TList 打印到控制台之后。

复制并粘贴下面的原始代码 - 没有改变一行

Writeln('c: '+inttostr(closed.Capacity)+' |l. 281');
  for i := 0 to open.Capacity-1 do
  begin
    Writeln('open: ' + open[i].startpunkt + open[i].endpunkt +
      IntToStr(open[i].kantenbewertung));
  end;
  Writeln('c: '+inttostr(closed.Capacity));
  Writeln('closed.capacity: '+inttostr(closed.Capacity));
  for i := 0 to closed.Capacity-1 do begin
  Writeln('closed: ' + closed[i].startpunkt + closed[i].endpunkt +
      IntToStr(closed[i].kantenbewertung));
  end;

Writeln('c: '+inttostr(closed.Capacity)+' |l. 281');清楚地打印到控制台,-loopfor i := 0 to open.Capacity-1 do begin也是如此。

控制台输出为:c: 2 |l。281 open: AC3 open: BC4 open: CD6 - 然后有错误消息

应该是 Dijkstra 算法实现的一部分。如果这有帮助。

有人发现我没有发现的错误吗?还是这是一些奇怪的特殊情况?

4

1 回答 1

3

Capacity与实际不同(并且可能更大)Count

于 2012-11-07T12:14:33.360 回答