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 和一个值
(函数模板)
应用函数 std::abs 到 valarray 的每个元素
(函数模板)
指数函数
应用函数 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 函数
(函数模板)
在 valarray 的每个元素上调用 std::cosh 函数
(函数模板)
在 valarray 的每个元素上调用 std::tanh 函数
(函数模板)

辅助类

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

推导指引(C++17 起)