命名空间
变体
操作

std::valarray

来自 cppreference.cn
< 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 和一个值
(函数模板) [编辑]
比较两个 valarray 或一个 valarray 与一个值
(函数模板) [编辑]
将函数 abs 应用于 valarray 的每个元素
(函数模板) [编辑]
指数函数
将函数 std::exp 应用于 valarray 的每个元素
(函数模板) [编辑]
将函数 std::log 应用于 valarray 的每个元素
(函数模板) [编辑]
将函数 std::log10 应用于 valarray 的每个元素
(函数模板) [编辑]
幂函数
将函数 std::pow 应用于两个 valarray 或一个 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 切片:起始索引、长度、步长
(类) [编辑]
应用切片后 valarray 子集的代理
(类模板) [编辑]
广义 valarray 切片:起始索引、长度集合、步长集合
(类) [编辑]
应用 gslice 后 valarray 子集的代理
(类模板) [编辑]
应用布尔掩码 operator[] 后 valarray 子集的代理
(类模板) [编辑]
应用间接 operator[] 后 valarray 子集的代理
(类模板) [编辑]

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

[编辑] 参见

(C++26)
可以指定宽度的 basic_simd 的便捷别名模板
(别名模板)[编辑]
(C++26)
可以指定宽度的 basic_simd_mask 的便捷别名模板
(别名模板)[编辑]
(并行性 TS v2)
数据并行向量类型
(类模板) [编辑]
(并行性 TS v2)
元素类型为 bool 的数据并行类型
(类模板) [编辑]