Udostępnij za pośrednictwem


Klasa gslice_array

Wewnętrzny szablon klasy pomocniczej, który obsługuje ogólne obiekty fragmentowania, zapewniając operacje między tablicami podzestawu zdefiniowanymi przez ogólny wycinek klasy valarray.

Składnia

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
}

Uwagi

Klasa opisuje obiekt, który przechowuje odwołanie do obiektu klasy , wraz z obiektem va gs klasy valarray<Type>gslice, który opisuje sekwencję elementów do wybrania z valarray<Type> obiektu.

Obiekt tworzy gslice_array<Type> się tylko przez napisanie wyrażenia formularza va[gs]. Funkcje składowe klasy gslice_array zachowują się wtedy jak odpowiednie sygnatury funkcji zdefiniowane dla valarray<Type>elementu , z tą różnicą, że dotyczy to tylko sekwencji wybranych elementów.

Szablon klasy jest tworzony pośrednio przez niektóre valarray operacje i nie można go używać bezpośrednio w programie. Wewnętrzny szablon klasy pomocniczej jest używany przez operator indeksu slice dolnego:

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

Obiekt można gslice_array<Type> skonstruować tylko przez napisanie wyrażenia formularza va[gsl], dla elementu valarray slice gsl va. Funkcje składowe klasy gslice_array zachowują się wtedy jak odpowiednie sygnatury funkcji zdefiniowane dla valarray<Type>elementu , z tą różnicą, że dotyczy to tylko sekwencji wybranych elementów. Sekwencja kontrolowana przez gslice_array element jest definiowana przez trzy parametry slice konstruktora, indeks pierwszego elementu w pierwszym slice, liczbę elementów w każdym sliceobiekcie i odległość między elementami w każdym sliceobiekcie .

W poniższym przykładzie:

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

Indeksy muszą być prawidłowe, aby procedura jest prawidłowa.

Przykład

Zobacz przykład, aby gslice::gslice zapoznać się z przykładem deklarowania i używania slice_array.

Wymagania

Header:<valarray>

Przestrzeń nazw: std

Zobacz też

Bezpieczeństwo wątków w standardowej bibliotece języka C++