Шаг 447.
Библиотека STL.
Числовые типы. Строение класса valarray. Операторы массивов значений

    На этом шаге мы перечислим операторы, которые могут применяться к массивам значений.

   

Унарные операторы массивов значений имеют следующий формат:
  valarray valarray::унарный_оператор () const
Унарный оператор возвращает новый массив значений со всеми элементами *this, модифицированными оператором.

    Параметр унарный оператор - один из следующих операторов:

  operator + 
  operator -
  operator ~
  operator !

    Оператор ! возвращает тип valarray<bool>.

Бинарные операторы для массивов значений (кроме операторов сравнения и присваивания) имеют следующий формат:
  valarray бинарный_оператор (const valarray&. va1, const valarray& va2) 
  valarray бинарный_оператор (const valarray& va, const T& value) 
  valarray бинарный_оператор (const T& value, const valarray& va)
Операторы возвращают новый массив значений, размер которого соответствует размеру va, va1 или va2. Новый массив значений содержит результат применения бинарного оператора к каждой паре значений.

    Если при вызове оператора передается только отдельное значение value, оно комбинируется с каждым элементом va.

    Параметр бинарный_оператор - один из следующих операторов:

  operator + 
  operator -
  operator * 
  operator / 
  operator % 
  operator ^ 
  operator & 
  operator | 
  operator << 
  operator >>

    Если va1 и va2 содержат разное количество элементов, результат не определен.

Логические операторы и операторы сравнения работают по той же схеме, но они возвращают массив значений с логическими элементами:
  valarray<bool> логический_оператор (const valarray& va1, const valarray& va2) 
  valarray<bool> логический_оператор (const valarray& va1, const T& value) 
  valarray<bool> логический_оператор (const T& value, const va1array& va)
Операторы возвращают новый массив значений, размер которого соответствует размеру va, va1 или va2. Новый массив значений содержит результат применения логического оператора к каждой паре значений.

    Если при вызове оператора передается только отдельное значение value, оно комбинируется с каждым элементом va.

    Параметр логический_оператор - один из следующих операторов:

  operator == 
  operator != 
  operator < 
  operator <= 
  operator > 
  operator >= 
  operator && 
  operator ||

    Если va1 и va2 содержат разное количество элементов, результат операции не определен.

    Ссылки и указатели на модифицированные элементы остаются действительными все время, пока существует массив значений и для него не вызываются функции, изменяющие размер массива.

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




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