我在 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 算法实现的一部分。如果这有帮助。
有人发现我没有发现的错误吗?还是这是一些奇怪的特殊情况?