std:: valarray
|
Определено в заголовочном файле
<valarray>
|
||
|
template
<
class
T
>
class valarray ; |
||
std::valarray
— это класс для представления и манипуляции массивами значений. Он поддерживает поэлементные математические операции и различные формы обобщённых операторов индексации, срезы и косвенный доступ.
Содержание |
Примечания
std::valarray
и вспомогательные классы определены таким образом, чтобы исключать определенные формы псевдонимов, что позволяет оптимизировать операции с этими классами аналогично эффекту ключевого слова
restrict
в языке программирования C. Кроме того, функциям и операторам, принимающим аргументы
valarray
, разрешено возвращать прокси-объекты, чтобы дать компилятору возможность оптимизировать выражение вида
v1
=
a
*
v2
+
v3
;
как единый цикл, выполняющий
v1
[
i
]
=
a
*
v2
[
i
]
+
v3
[
i
]
;
без использования временных объектов или многократных проходов. Однако
шаблоны выражений
делают ту же технику оптимизации доступной для любых контейнеров C++, и большинство числовых библиотек предпочитают шаблоны выражений valarray ради гибкости. Некоторые реализации стандартной библиотеки C++ используют шаблоны выражений для реализации эффективных операций с
std::valarray
(например, GNU libstdc++ и LLVM libc++). Valarrays редко оптимизируются дальше, как, например, в
Intel Integrated Performance Primitives
.
Параметры шаблона
| T | - | тип элементов. Тип должен удовлетворять требованиям NumericType |
Типы членов
| Тип члена | Определение |
value_type
|
T
|
Функции-члены
|
создает новый числовой массив
(public member function) |
|
|
уничтожает числовой массив
(public member function) |
|
|
присваивает содержимое
(public member function) |
|
|
получает/устанавливает элемент valarray, срез или маску
(public member function) |
|
|
применяет унарный арифметический оператор к каждому элементу valarray
(public member function) |
|
|
применяет составной оператор присваивания к каждому элементу valarray
(public member function) |
|
|
обменивается с другим valarray
(public member function) |
|
|
возвращает размер valarray
(public member function) |
|
|
изменяет размер valarray
(public member function) |
|
|
вычисляет сумму всех элементов
(public member function) |
|
|
возвращает наименьший элемент
(public member function) |
|
|
возвращает наибольший элемент
(public member function) |
|
|
сдвигает элементы valarray с заполнением нулями
(public member function) |
|
|
циклический сдвиг элементов valarray
(public member function) |
|
|
применяет функцию к каждому элементу valarray
(public member function) |
Функции, не являющиеся членами класса
|
(C++11)
|
специализирует
std::swap
алгоритм
(шаблон функции) |
|
(C++11)
|
перегружает
std::begin
(шаблон функции) |
|
(C++11)
|
специализирует
std::end
(шаблон функции) |
|
применяет бинарные операторы к каждому элементу двух valarray, или valarray и значения
(шаблон функции) |
|
|
сравнивает два valarray или valarray со значением
(шаблон функции) |
|
|
применяет функцию
abs
к каждому элементу valarray
(шаблон функции) |
|
Экспоненциальные функции |
|
|
применяет функцию
std::exp
к каждому элементу valarray
(шаблон функции) |
|
|
применяет функцию
std::log
к каждому элементу valarray
(шаблон функции) |
|
|
применяет функцию
std::log10
к каждому элементу valarray
(шаблон функции) |
|
Степенные функции |
|
|
применяет функцию
std::pow
к двум valarray или valarray и значению
(шаблон функции) |
|
|
применяет функцию
std::sqrt
к каждому элементу valarray
(шаблон функции) |
|
Тригонометрические функции |
|
|
применяет функцию
std::sin
к каждому элементу valarray
(шаблон функции) |
|
|
применяет функцию
std::cos
к каждому элементу valarray
(шаблон функции) |
|
|
применяет функцию
std::tan
к каждому элементу valarray
(шаблон функции) |
|
|
применяет функцию
std::asin
к каждому элементу valarray
(шаблон функции) |
|
|
применяет функцию
std::acos
к каждому элементу valarray
(шаблон функции) |
|
|
применяет функцию
std::atan
к каждому элементу valarray
(шаблон функции) |
|
|
применяет функцию
std::atan2
к valarray и значению
(шаблон функции) |
|
Гиперболические функции |
|
|
применяет функцию
std::sinh
к каждому элементу valarray
(шаблон функции) |
|
|
применяет функцию
std::cosh
к каждому элементу valarray
(шаблон функции) |
|
|
применяет функцию
std::tanh
к каждому элементу valarray
(шаблон функции) |
|
Вспомогательные классы
|
BLAS-подобный срез valarray: начальный индекс, длина, шаг
(класс) |
|
|
прокси для подмножества valarray после применения slice
(шаблон класса) |
|
|
обобщённый срез valarray: начальный индекс, набор длин, набор шагов
(класс) |
|
|
прокси для подмножества valarray после применения gslice
(шаблон класса) |
|
прокси для подмножества valarray после применения булевой маски
operator[]
(шаблон класса) |
|
прокси для подмножества valarray после применения косвенного
operator[]
(шаблон класса) |
Руководства по выводу (начиная с C++17)
Смотрите также
|
(C++26)
|
удобный псевдоним-шаблон для
basic_simd
, который может указывать свою ширину
(псевдоним-шаблон) |
|
(C++26)
|
удобный псевдоним-шаблон для
basic_simd_mask
, который может указывать свою ширину
(псевдоним-шаблон) |
|
(parallelism TS v2)
|
тип вектора с параллелизмом данных
(шаблон класса) |
|
(parallelism TS v2)
|
тип с параллелизмом данных с типом элементов bool
(шаблон класса) |