共用方式為


gslice_array 類別

內部的輔助類別範本,透過在的一般配量所定義的子集陣列之間提供作業,以支援一般 valarray配量物件。

語法

template <class Type>
class gslice_array : public gsplice {
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>參考,以及 gs 類別的物件gslice,該物件描述要從 valarray<Type> 物件中選取va的專案序列。

您只能藉由撰寫表單 va[gs]的運算式來建構 gslice_array<Type> 物件。 類別的成員 gslice_array 函式接著的行為就像為 valarray<Type>定義的對應函式簽章,不同之處在於只會影響所選元素的序列。

類別範本是由特定 valarray 作業間接建立,且無法直接在程式中使用。 下標運算子會改用 slice 內部輔助類別範本:

gslice_array<Type> valarray<Type>::operator[]( const gslice& ).

您只能藉由撰寫 表單的 表達式 ,為 valarray vagslslice 來建構 gslice_array<Type> 物件。va[gsl] 類別的成員 gslice_array 函式接著的行為就像為 valarray<Type>定義的對應函式簽章,不同之處在於只會影響所選元素的序列。 由 gslice_array 控制的序列是由建構函式的 slice 三個參數所定義,第一 slice個元素的索引、每個 slice中的元素數目,以及每個 slice元素之間的距離。

在以下範例中:

const size_t lv[] = {2, 3};
const size_t dv[] = {7, 2};
const valarray<size_t> len(lv, 2), str(dv, 2);

// va[gslice(3, len, str)] selects elements with
//   indices 3, 5, 7, 10, 12, 14

索引必須有效,程序才能有效。

範例

gslice::gslice如需如何宣告和使用slice_array的範例,請參閱範例。

需求

標頭:<valarray>

命名空間std

另請參閱

C++標準連結庫中的線程安全性