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++ 容器可用,而数值库的主流因灵活性偏好表达式模板甚于 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 的每个元素应用函数  (公开成员函数)  | 
非成员函数
|    (C++11)  | 
   特化 std::swap() 算法  (函数模板)  | 
|    (C++11)  | 
   特化的 std::begin   (函数模板)  | 
|    (C++11)  | 
   特化的 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 子集的代理。 (类模板)  |