slice_array
クラス
valarray
のスライスによって定義されたサブセット配列間の操作を提供することによって、slice
オブジェクトをサポートする内部補助クラス テンプレート。
構文
template <class Type>
class slice_array : public slice {
public:
typedef Type value_type;
void operator=(const valarray<Type>& x) const;
void operator=(const Type& x) const;
void operator*=(const valarray<Type>& x) const;
void operator/=(const valarray<Type>& x) const;
void operator%=(const valarray<Type>& x) const;
void operator+=(const valarray<Type>& x) const;
void operator-=(const valarray<Type>& x) const;
void operator^=(const valarray<Type>& x) const;
void operator&=(const valarray<Type>& x) const;
void operator|=(const valarray<Type>& x) const;
void operator<<=(const valarray<Type>& x) const;
void operator>>=(const valarray<Type>& x) const;
// The rest is private or implementation defined
}
解説
クラスは、クラス valarray<Type>
のオブジェクトへの参照を格納するオブジェクトと、valarray<Type>
オブジェクトから選択する要素のシーケンスを記述するクラス slice
のオブジェクトを記述します。
クラス テンプレートは、特定の valarray
操作によって間接的に作成され、プログラムで直接使用することはできません。 slice
添字演算子によって使用される、内部の補助クラス テンプレート。
slice_array<Type> valarray<Type>::operator[]( slice )
.
slice_array<Type>
オブジェクトを構築するには、va[sl]
の形式で valarray va
のスライス sl
に対して式を記述するだけです。 slice_array
クラスのメンバー関数は、valarray<Type>
に対して定義されている、対応する関数のシグネチャのように動作しますが、選択された要素のシーケンスのみが影響を受ける点が異なります。 slice_array
によって制御されるシーケンスは、slice
コンストラクターの 3 つのパラメーター、slice
内の最初の要素のインデックス、要素の数、および要素間の距離によって定義されます。 va[slice(2, 5, 3)]
によって宣言されたvalarray
va
から切り取られたslice_array
は、va
からインデックス 2、5、8、11、および 14 の要素を選択します。 プロシージャが有効であるためには、これらのインデックスが有効である必要があります。
例
slice_array
を宣言して使用する方法の例については、slice::slice
の例を参照してください。
要件
ヘッダー:<valarray>
名前空間: std