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 Parallel Studio

[编辑] 模板参数

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

[编辑] 成员类型

成员类型 定义
value_type T

[编辑] 成员函数

构造新的数值数组
(公开成员函数) [编辑]
析构数值数组
(公开成员函数) [编辑]
为内容赋值
(公开成员函数) [编辑]
获取/设置 valarray 数组元素、切片或掩码
(公开成员函数) [编辑]
对 valarray 的每个元素运用一元算术运算符
(公开成员函数) [编辑]
在valarray的每个元素上调用复合赋值运算符
原文:
applies compound assignment operator to each element of the valarray
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(公开成员函数) [编辑]
和其他的valarray交换内容
(公开成员函数) [编辑]
返回valarray的大小
(公开成员函数) [编辑]
改变valarray的大小
原文:
changes the size of valarray
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(公开成员函数) [编辑]
计算所有元素的总和
原文:
calculates the sum of all elements
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(公开成员函数) [编辑]
返回最小的元素
原文:
returns the smallest element
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(公开成员函数) [编辑]
返回最大的元素
(公开成员函数) [编辑]
以零填充的方式移动valarray的元素
(公开成员函数) [编辑]
循环移动valarray的元素
(公开成员函数) [编辑]
将函数应用于valarray的每个元素
(公开成员函数) [编辑]

[编辑] 非成员函数

特化 std::swap() 算法
(函数模板) [编辑]
特化的 std::begin
(函数模板) [编辑]
特化的 std::end
(函数模板) [编辑]
对两个 valarray 的每个元素或一个 valarray 和一个值运用二元运算符
(函数模板) [编辑]
比较两个 valarrays,或比较一个 valarray 和一个值
(函数模板) [编辑]
在valarray的每个元素上调用std::abs函数
(函数模板) [编辑]
指数函数
在valarray的每个元素上调用std::exp函数
(函数模板) [编辑]
在valarray的每个元素上调用std::log函数
(函数模板) [编辑]
在valarray的每个元素上调用std::log10函数
(函数模板) [编辑]
幂函数
对两个valarrays或valarray和值调用std::pow函数
(函数模板) [编辑]
在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 应用 slice 后的子集的代理
(类模板) [编辑]
valarray的通用切片:起始下标,长度集合,步幅集合
原文:
generalized slice of a valarray: starting index, set of lengths, set of strides
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(类) [编辑]
valarray 应用 gslice 后的子集的代理
(类模板) [编辑]
表示valarray调用布尔掩码运算符[]后的子集
原文:
proxy to a subset of a valarray after applying a boolean mask operator[]
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(类模板) [编辑]
表示valarray调用间接运算符[]后的子集
原文:
proxy to a subset of a valarray after applying indirect operator[]
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(类模板) [编辑]

[编辑] 推导指引(C++17 起)