std::valarray
来自cppreference.com
在头文件 <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++容器。由于灵活性,数值库的大多数更倾向于使用表达模板而不是valarrays。一些C++标准库的实现使用表达式模板来实现std::valarray
上的高效操作(如GNU的libstdc++和LLVM的libc++),只有很少的valarray做了进一步的优化,例如:Intel Parallel Studio。
[编辑] 成员类型
成员类型
|
Definition |
value_type
|
T
|
[编辑] 成员函数
构造新的数值数组 (公共成员函数) | |
析构数值数组 (公共成员函数) | |
为内容赋值 (公共成员函数) | |
获取/设置,切片,或屏蔽valarray的元素 (公共成员函数) | |
在valarray的每个元素上调用一元算术运算符 (公共成员函数) | |
在valarray的每个元素上调用复合赋值运算符 原文: applies compound assignment operator to each element of the valarray (公共成员函数) | |
和其他的valarray交换内容 (公共成员函数) | |
返回valarray的大小 (公共成员函数) | |
改变valarray的大小 (公共成员函数) | |
计算所有元素的总和 (公共成员函数) | |
返回最小的元素 (公共成员函数) | |
返回最大的元素 (公共成员函数) | |
以零填充的方式移动valarray的元素 (公共成员函数) | |
循环移动valarray的元素 (公共成员函数) | |
将函数应用于valarray的每个元素 (公共成员函数) |
[编辑] 非成员函数
(C++11) |
特化的std::swap()算法 (函数模板) |
(C++11) |
特化的 std::begin (函数模板) |
(C++11) |
特化的 std::end (函数模板) |
在两个valarrays的每个元素,或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切片:起始下标,长度和步幅 原文: -like slice of a valarray: starting index, length, stride (类) | |
表示valarray切片后的子集 原文: proxy to a subset of a valarray after applying a slice (类模板) | |
valarray的通用切片:起始下标,长度集合,步幅集合 原文: generalized slice of a valarray: starting index, set of lengths, set of strides (类) | |
表示valarray调用gslice后的子集 原文: proxy to a subset of a valarray after applying a 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[] (类模板) |