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[] (类模板) |