std::valarray

来自cppreference.com
< cpp‎ | numeric
 
 
 
 
在标头 <valarray> 定义
template< class T >
class valarray;

std::valarray 是表示并操作值数组的类。它支持对元素逐个进行数学运算,并且支持多种形式的广义下标运算符、切片及间接访问。

注解

std::valarray 及帮助类定义为免除某些形式的别名使用,从而允许这些类上的操作被优化得类似 C 程序语言中关键词 restrict 的效果。而且,接收 valarray 实参的函数和运算符允许返回代理对象,以使得编译器将诸如 v1 = a * v2 + v3; 的表达式优化成执行 v1[i] = a * v2[i] + v3[i]; 的单个循环,避免任何临时量或多趟运算。然而,表达式模板使得同样的优化技巧对任何 C++ 容器可用,而数值库的主流则因灵活性而偏好表达式模板甚于 valarray。某些 C++ 标准库实现使用表达式模板以实现 std::valarray 上的高效运算(例如 GNU libstdc++ 与 LLVM libc++)。只有少数库进一步优化了 valarray,例如 Intel Integrated Performance Primitives

模板形参

T - 元素的类型。类型必须满足数值类型 (NumericType) 要求

成员类型

成员类型 定义
value_type T

成员函数

构造新的数值数组
(公开成员函数)
析构数值数组
(公开成员函数)
为内容赋值
(公开成员函数)
获取/设置 valarray 数组元素、切片或掩码
(公开成员函数)
对 valarray 的每个元素运用一元算术运算符
(公开成员函数)
对 valarray 的每个元素应用复合赋值运算符
(公开成员函数)
与另一 valarray 交换
(公开成员函数)
返回 valarray 的大小
(公开成员函数)
更改 valarray 的大小
(公开成员函数)
计算所有元素的和
(公开成员函数)
返回最小元素
(公开成员函数)
返回最大的元素
(公开成员函数)
以填入零的方式移动 valarray 的元素
(公开成员函数)
循环移动 valarray 的元素
(公开成员函数)
valarray 的每个元素应用一个函数
(公开成员函数)

非成员函数

特化 std::swap 算法
(函数模板)
重载 std::begin
(函数模板)
特化的 std::end
(函数模板)
对两个 valarray 的每个元素,或一个 valarray 的每个元素和一个值运用二元运算符
(函数模板)
比较两个 valarrays,或比较一个 valarray 和一个值
(函数模板)
应用函数 absvalarray 的每个元素
(函数模板)
指数函数
应用函数 std::exp 到 valarray 的每个元素
(函数模板)
应用函数 std::log 到 valarray 的每个元素
(函数模板)
应用函数 std::log10 到 valarray 的每个元素
(函数模板)
幂函数
应用函数 std::pow 到二个 valarray 或一个 valarray 与一个值
(函数模板)
应用函数 std::sqrt 到 valarray 的每个元素
(函数模板)
三角函数
valarray 的每个元素应用 std::sin 函数
(函数模板)
应用函数 std::cos 到 valarray 的每个元素
(函数模板)
应用函数 std::tan 到 valarray 的每个元素
(函数模板)
应用函数 std::asin 到 valarray 的每个元素
(函数模板)
应用函数 std::acos 到 valarray 的每个元素
(函数模板)
应用函数 std::atan 到 valarray 的每个元素
(函数模板)
应用函数 std::atan2 到一个 valarray 和一个值
(函数模板)
双曲函数
valarray 的每个元素应用 std::sinh 函数
(函数模板)
应用函数 std::coshvalarray 的每个元素
(函数模板)
在 valarray 的每个元素上调用 std::tanh 函数
(函数模板)

辅助类

valarray 的 BLAS 式切片:起始下标、长度、跨度
(类)
valarray 应用切片后的子集的代理
(类模板)
valarray 的通用切片:起始下标、长度集、步幅集
(类)
valarray 应用 gslice 后的子集的代理
(类模板)
到应用布尔掩码 operator[] 后的 valarray 子集的代理
(类模板)
到应用间接 operator[] 后的 valarray 子集的代理。
(类模板)

推导指引(C++17 起)

参阅

(并行 TS v2)
数据并行向量类型
(类模板)
(并行 TS v2)
元素类型为 bool 的数据并行类型
(类模板)