「プログラミング言語C++第四版」について気が付いたことなど (5)

意味不明な訳


13.6.4.3 push_back()

…(略)…

あいにく、理にかなった一般的な値は存在しない。vectorを一度push_back()することがあれば、ほぼ間違いなくpush_back()処理が行なわれると想定できる。増加係数の2は、平均的なメモリ利用を最小限に抑える、数学的に最適な係数(1.618)よりも大きいため、メモリが乏しくないシステムであれば、よりよい実行時性能を期待できる。


原文:

As it happens, these are not unreasonable or uncommon values. The assumption is that once we have seen one push_back() for a vector, we will almost certainly see many more. The factor two is larger than the mathematically optimal factor to minimize average memory use (1.618), so as to give beter run-time performance for systems where memories are not tiny.


試訳:

ありがちだが、これらの値は理にかなっていないわけでも一般的でないわけでもない。vectorで一回でもpush_back()が使われれば、もっと沢山使われるのはほぼ確実であろう。増加係数の2は、平均的なメモリ利用を最小限に抑える数学的に最適な係数(1.618)よりも大きいため、メモリが乏しくないシステムであれば、よりよい実行時性能を期待できる。


考察:

not unreasonable or uncommonと二重否定になっているのを見落としていて、マジックナンバーのようだけど実は根拠はあるんだよと言っているのを逆の意味に捉えているように思う。The assumption is の文はどういうわけか many moreを訳していない。

コメントを残す