Шаг 445.
Библиотека STL.
Числовые типы. Строение класса valarray. Функции класса

    На этом шаге мы перечислим функции, которые описаны в этом классе.

    Класс valarray определяет следующие функции.

  size_t <I>valarray</I>::size () const
Возвращает текущее количество элементов.
  void valarray::resize (size_t num)
  void valarray::resize (size_t num, Т value)
Обе формы изменяют размер массива значений до величины num.

    При увеличении размера новые элементы инициализируются конструктором по умолчанию или значением value соответственно.

    Обе формы делают недействительными все указатели и ссылки на элементы массива значений.

    Функции поддерживаются только для создания массивов, элементами которых являются массивы значений. После создания массива значений конструктором по умолчанию следует задать его правильный размер вызовом resize().

  Т valarray::min () const 
  Т valarray::max () const
Первая форма возвращает минимальное значение среди элементов массива значений.

    Вторая форма возвращает максимальное значение среди элементов массива значений.

    Элементы сравниваются операторами < и >, поэтому эти операторы должны быть определены для типа элементов.

    Если массив значений не содержит элементов, то возвращаемые значения не определены.

  Т valarray::sum () const
Возвращает сумму всех элементов.

    Элементы обрабатываются оператором += , поэтому этот оператор должен быть определен для типа элементов.

    Если массив значений не содержит ни одного элемента, то возвращаемое значение не определено.

  valarray valarray::shift (int num) const
Возвращает новый массив значений, в котором все элементы сдвинуты на num позиций.

    Возвращаемый массив значений содержит то же количество элементов.

    Элементы в позициях, освободившихся в результате сдвига, инициализируются конструктором по умолчанию.

    Направление сдвига зависит от знака num:

  • если значение num положительно, элементы сдвигаются влево/вперед (с уменьшением индекса);
  • если значение num отрицательно, элементы сдвигаются вправо/назад (с увеличением индекса).
  valarray valarray::cshift (int num) const
Возвращает новое значение, в котором все элементы циклически сдвинуты на num позиций.

    Возвращаемый массив значений содержит то же количество элементов.

    Направление сдвига зависит от знака num:

  • если значение num положительно, элементы сдвигаются влево/вперед (с уменьшением индекса или вставкой элемента в конце);
  • если значение num отрицательно, элементы сдвигаются вправо/назад (с увеличением индекса или вставкой элемента в начале).
  valarray valarray::apply (T op(T)) const 
  valarray valarray::apply (T op(const T&)) const
Обе формы возвращают новый массив значений с элементами, обработанными предикатом ор().

    Возвращаемый массив значений содержит то же количество элементов.

    Для каждого элемента *this вызывается предикат op(elem), а соответствующий элемент возвращаемого массива инициализируется результатом вызова.

    На следующем шаге мы рассмотрим обращение к элементам.




Предыдущий шаг Содержание Следующий шаг