18

valarrayクラスの見た目はクラスと同じですが、どこを優先するか、またはその逆arrayを説明していただけますか?valarrayarray

4

3 に答える 3

23
  • valarrayC++03 には既にありましたがarray、C++11 で新しく追加されました
  • valarrayは可変長でarrayはありません。
  • valarray+は数値計算用に設計されており、-*cossin、 などを含む多くの演算を提供しますが、そうでarrayはありません。
  • valarray配列のスライス (サブ配列) を取得するためのインターフェイスがありますが、arrayありません。
于 2012-01-22T23:19:24.717 に答える
6

valarray動的データ構造であり、そのサイズは実行時に変更でき、動的割り当てを実行します。arrayコンパイル時にサイズが決定される静的データ構造です (また、集計でもあります)。

valarrayただし、使用しないでください。vector代わりにa を使用してください。

于 2012-01-22T23:19:48.610 に答える
6

に関連するクラス テンプレートは、式テンプレートstd::valarray<T>と呼ばれる最適化手法をサポートすることを目的としています。私はこれを試みたことはありませんが、私の理解では、仕様はこれを完全に要求しておらず、実際にはこれを十分にサポートしていません。一般に、かなり特殊化されたクラスであり、実際には広く使用されていません。また、テンプレート引数のサポートは限定されていると思います(組み込みの数値型など)。std::valarray<T>std::valarray<T>

もう 1 つstd::array<T, n>は、固定サイズでありながら、通常のコンテナー インターフェイスを可能な限りサポートする固定サイズの配列です。基本的に、std::array<T>のより使いやすいバージョンですT[n]

于 2012-01-22T23:21:59.787 に答える