0

つまり、FOR を使用して Index 配列を 1 つずつ取得しますが、速度が遅すぎます。そうしないと、文字列に変換されますか? それはより速く去りますか?

私の場合は、ShortInt の動的配列になります。

たとえば、次の入力があるとします。

[0,20,-15]

次の出力が必要です。

0,20,-15
4

1 に答える 1

4

文字列の不必要な再割り当てを実行しているため、コードが遅いと思われます。ただし、コードを確認しないと、確認するのは困難です。

おそらく、アルゴリズムをコーディングする最も簡単な方法は、 を使用することTStringBuilderです。それで十分なパフォーマンスが得られるかどうかは、あなたにしか言えません。

sb := TStringBuilder.Create;
try
  for i := 0 to high(buffer) do
  begin
    sb.Append(IntToStr(buffer[i]));
    if i<high(buffer) then
      sb.Append(',');
  end;
  str := sb.ToString;
finally
  sb.Free;
end;
于 2012-11-05T14:12:13.150 に答える