## 22.6 メンバー関数

クラス valarray のメンバー関数には、valarray のサイズを返す `size()` 関数と valarray 内のすべての要素の合計を返す `sum()` 関数があります。関数 `min()` および `max()` は、それぞれ valarray の最小値と最大値を返します。

クラス valarray には、2 つのシフト関数もあります。このどちらの関数も、要素を指定されたステップ数だけ左にシフトします。この場合、`0` 番目の要素が左端と定義されます。`shift()` 関数では、右側に `0` または `T()` が代入されます。`cshift()` 関数は、`i` 番目の要素が位置 `self.length() - n -i` の要素となるように、循環シフトまたは回転を実行します。この場合 `i` は `0` から `n` まで実行され、`n` はシフトされるステップ数を表します。どちらの関数も新規の valarray を返しますが、元の配列は変更されません。以下に例を挙げます。

    int a[5] = {1,2,3,4,5};
    valarray<int> v(a,5);
    valarray<int> v2 = v.shift(2);                 // v2 = {3,4,5,0,0}
    v2 = v.cshift(2);                              // v2 = {3,4,5,1,2}

クラス valarray は、`apply()` 関数の 2 つのバージョンを提供します。これらの関数は、ユーザー指定の関数を配列内の各要素に適用します。やはり、結果として新規の配列を返し、元の配列は変更されません。

最後に、コンストラクタに関する説明にあるように、valarray には、配列に含まれる要素数をプログラムが変更することができる、サイズ変更関数が含まれます。新規にサイズ変更された配列内のすべての要素は関数により再初期化されるため、元の要素は (もしあれば) この過程で失われます。

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