## 22.7 非メンバー関数

### 22.7.1 2 項演算子

クラス valarray は、2 項演算子の大きなブロックを提供します。プログラムは、これらの演算子を 2 つの valarray または 1 つの valarray と `T` 値に適用することができます。この場合 `T` は、式の左辺または右辺に表示されます。これらの演算子はその引数を変更しませんが、代わりに演算の結果を含む新規の valarray を返します。2 つの valarray 引数を取る各バージョンは、演算を配列の対応する要素に適用した結果を返します。`T&` 引数を取るバージョンは、valarray 引数と `T&` 引数内の各要素に演算を適用した結果の要素を含む valarray を返します。2 項演算子の全リストについては、『標準 C++ クラスライブラリ・リファレンス』の valarray の項を参照してください。

算術演算子とビット単位の演算子は、`T` の valarray を返します。論理演算子は、valarray<bool> を返します。この各要素は、2 つの valarray 内の対応する要素の比較、または特定の値を持つ配列内の各要素の比較を表します。以下に例を示します。

    int a[3] = {1,2,3};
    int b[3] = {0,1,4};
    valarray<int> v1(a,3);
    valarray<int> v2(b,3);
    valarray<int> v3(0,3);
    valarray<bool> v4(false,3);
    v3 = v1 + v2;                           // v3 = {1,3,7}
    v4 = v1 == v2;                          // v4 = {false,false,false}
    v4 = v1 < v2;                           // v4 = {false,false,true}

### 22.7.2 超越関数

クラス valarray は、20 の超越関数も提供します。そのうち 4 つは多重定義です。各関数は、引数として渡される valarray 内の各要素に超越関数を適用した結果である要素を含む、新規の valarray を返します。超越関数の全リストについては、『標準 C++ クラスライブラリ・リファレンス』の valarray の項を参照してください。

以下の例は、配列の各要素を 2 乗します。

    using std::pow;

    float a[3] = {2.0, 4.0, 16.0};
    valarray<float> v(a,3);              // v = {2.0, 4.0, 16.0}
    valarray<float> v2(0.0,3);           // v2 = {0.0, 0.0, 0.0}

    v2 = pow(v,2.0);                     // v2 = {4.0, 16.0, 256.0 }

Copyright (c) 1998, Rogue Wave Software, Inc.
このマニュアルに関する誤りのご指摘やご質問は、電子メールにてお送りください。
OEM リリース, 1998 年 6 月