Java と C++ のパフォーマンスの比較で、私たちの教授は、int * a = new int[NUM]
std::vector よりもネイティブ配列 (のような動的配列) を選択しても利点はないと主張しました。彼女はまた、最適化されたベクトルはより高速になる可能性があると主張しましたが、その理由については教えてくれませんでした. ベクトルの背後にある魔法は何ですか?
パフォーマンスについてのみ回答してください。これは一般的な投票ではありません。
生の配列のような低レベルのものを含む超最適化されたコードは、std::vector
. しかし、ベクトルを持つことの利点は、低レベルのコードから得られるわずかなパフォーマンスの向上よりもはるかに重要です。
私が心に留めておくべきことの 1 つは、動的配列を と比較してはならないということstd::vector
です。これらは 2 つの異なるものです。残念ながら、おそらくc ++ 14にはならないようなものと比較する必要がありますstd::dynarray
(boost prollyには1つあり、参照実装が横たわっていると確信しています)。実装によって、ネイティブstd::dynarray
配列とパフォーマンスが異なる可能性はほとんどありません。