29 Numerics library [numerics]

29.7 Numeric arrays [numarray]

29.7.2 Class template valarray [template.valarray]

29.7.2.8 valarray member functions [valarray.members]

void swap(valarray& v) noexcept;

Effects: *this получает значение v. v получает значение *this.

Complexity: Постоянный.

size_t size() const;

Returns: Количество элементов в массиве.

Complexity: Постоянное время.

T sum() const;

Requires: size() > 0. Эта функция может быть создана только для типа, T к которому operator+= может применяться.

Returns: Сумма всех элементов массива. Если массив имеет длину 1, возвращает значение элемента 0. В противном случае возвращаемое значение вычисляется путем применения operator+= к копии элемента массива и всех других элементов массива в неопределенном порядке.

T min() const;

Requires: size() > 0

Returns: Минимальное значение, содержащееся в *this. Для массива длиной 1 возвращается значение элемента 0. Для всех остальных длин массивов определение производится с использованием operator<.

T max() const;

Requires: size() > 0.

Returns: Максимальное значение, содержащееся в *this. Для массива длиной 1 возвращается значение элемента 0. Для всех остальных длин массивов определение производится с использованием operator<.

valarray shift(int n) const;

Returns: A valarray длины size(), каждый из элементов которого I равен (*this)[I + n] if I + n , неотрицателен и меньше size(), в противном случае T(). [ Note: Если нулевой элемент выбран как крайний левый элемент, положительное значение n сдвигает элементы влево n с нулевым заполнением. ]end note

[ Example: Если аргумент имеет значение -2, первые два элемента результата будут value-initialized; третьему элементу результата будет присвоено значение первого элемента аргумента; и т. д. ] end example

valarray cshift(int n) const;

Returns: A valarray длины, size() которая представляет собой круговое смещение на *this. Если нулевой элемент выбран как крайний левый элемент, неотрицательное значение n сдвигает элементы по кругу влево, n а отрицательное значение n сдвигает элементы по кругу вправо n .

valarray apply(T func(T)) const; valarray apply(T func(const T&)) const;

Returns: A valarray , длина которого равна size(). Каждому элементу возвращенного массива присваивается значение, возвращаемое путем применения функции аргумента к соответствующему элементу *this.

void resize(size_t sz, T c = T());

Effects: Изменяет длину *this массива на sz и затем присваивает каждому элементу значение второго аргумента. Изменение размера делает недействительными все указатели и ссылки на элементы в массиве.