Namespaces
Variants

std:: valarray

From cppreference.net
定义于头文件 <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 与一个值
(函数模板)
对 valarray 的每个元素应用 abs 函数
(函数模板)
指数函数
对 valarray 的每个元素应用 std::exp 函数
(函数模板)
对 valarray 的每个元素应用 std::log 函数
(函数模板)
对 valarray 的每个元素应用 std::log10 函数
(函数模板)
幂函数
对两个 valarray 或一个 valarray 与一个值应用 std::pow 函数
(函数模板)
对 valarray 的每个元素应用 std::sqrt 函数
(函数模板)
三角函数
对 valarray 的每个元素应用 std::sin 函数
(函数模板)
对 valarray 的每个元素应用 std::cos 函数
(函数模板)
对 valarray 的每个元素应用 std::tan 函数
(函数模板)
对 valarray 的每个元素应用 std::asin 函数
(函数模板)
对 valarray 的每个元素应用 std::acos 函数
(函数模板)
对 valarray 的每个元素应用 std::atan 函数
(函数模板)

辅助类

BLAS风格的valarray切片:起始索引、长度、步长
(类)
应用切片后valarray子集的代理
(类模板)
valarray的广义切片:起始索引、长度集合、步长集合
(类)
应用广义切片后valarray子集的代理
(类模板)
应用布尔掩码 operator[] 后valarray子集的代理
(类模板)
应用间接 operator[] 后valarray子集的代理
(类模板)

推导指引 (C++17 起)

参见

可指定宽度的 basic_simd 便捷别名模板
(别名模板)
可指定宽度的 basic_simd_mask 便捷别名模板
(别名模板)
(parallelism TS v2)
数据并行向量类型
(类模板)
(parallelism TS v2)
元素类型为 bool 的数据并行类型
(类模板)