Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Класс
Внутренний вспомогательный шаблон класса, поддерживающий общие объекты среза, предоставляя операции между массивами подмножества, определенными общим срезом 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
};
Замечания
Класс описывает объект, в котором хранится ссылка на объект va класса valarray<Type>, а также объект gs класса gslice, описывающий последовательность элементов для выбора из valarray<Type> объекта.
Объект создается gslice_array<Type> только путем написания выражения формы va[gs]. Затем функции-члены класса gslice_array ведут себя как соответствующие подписи функций, определенные для valarray<Type>, за исключением того, что затрагивается только последовательность выбранных элементов.
Шаблон класса создается косвенно определенными valarray операциями и не может использоваться непосредственно в программе. Вместо этого используется внутренний шаблон вспомогательного класса оператором slice подстрока:
gslice_array<Type> valarray<Type>::operator[]( const gslice& ).
Вы создаете gslice_array<Type> объект только путем написания выражения формы va[gsl]для valarray slice gsl vaобъекта. Затем функции-члены класса 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
Чтобы процедура была действительной, индексы должны быть действительными.
Пример
Пример объявления и использования slice_array см. в примере gslice::gslice .
Требования
Заголовок:<valarray>
Пространство имен: std