問題タブ [valarray]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1868 参照

c++11 - C++11: 数値計算に valarray または vector を使用する必要がありますか?

vector と valarray の問題は、すでにここで質問されています。私の質問は、特に C++11 の場合に言及しています。「A Tour of C++」「The C++ Programming Language」を読んでいます。どちらの本も、Bjarne Stroustrup によって書かれています。最初の本で、著者は、std::valarray数値計算にはこれが好ましいと説明しています (第 12 章)。しかし、2 冊目の本の第 29 章では、著者は Matrix クラスを a の観点から実装していstd::vectorます。

また、少しグーグルを行うことで、パフォーマンスに関しては、 astd::vectorは動的に割り当てられた「生の配列」と同じくらい高速であるようです。

では、C++11 のコンテキストでは、数値計算にはどのコンテナーを優先する必要がありますか?

これについての私の見解は、 (境界チェックなしでデータへの参照を返す)std::vectorを使用してコンテンツへの高速アクセスを提供し、動的に割り当てられた配列よりも安全であるため、優先する必要があるということです。また、C++11 以降:operator[]std::vectorstd::vector

  • std::vectorを使用して、基礎となるデータへの直接アクセスを提供しますstd::vector::data()
  • std::vector を使用してメモリ使用量を減らすためにサイズを変更できますstd::vector::shrink_to_fit()