std::valarray
来自cppreference.com
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
在头文件 <valarray> 中定义
|
||
template< class T > class valarray; |
||
std::valarray类的表示和操作数组的值。它支持元素明智的数学运算和各种形式的广义标运算符,切片和间接访问.
原文:
std::valarray is the class for representing and manipulating arrays of values. It supports element-wise mathematical operations and various forms of generalized subscript operators, slicing and indirect access.
[编辑] 注释
std::valarray类和辅助类被定义为某种形式的别名,从而使这些类的操作进行优化的关键字的效果类似
restrict
在C编程语言。此外,采取valarray
参数的函数和运算符被允许返回代理对象,使编译器可以进行优化的表达,如v1 = a*v2 + v3;v1[i] = a*v2[i] + v3[i];避免任何的临时或多次传递一个循环执行。然而,表达式模板相同的优化技术,可用于任何C + +容器,数字图书馆的大多数更喜欢表达模板,valarrays的灵活性。一些C + +标准库的实现使用表达式模板来实现高效的运营std::valarray
(如GNU的libstdc + +和LLVM的libc + +),只有很少valarrays进行了优化任何进一步的,例如:在Intel Parallel Studio.原文:
std::valarray and helper classes are defined to be free of certain forms of aliasing, thus allowing operations on these classes to be optimized similar to the effect of the keyword
restrict
in the C programming language. In addition, functions and operators that take valarray
arguments are allowed to return proxy objects to make it possible for the compiler to optimize an expression such as v1 = a*v2 + v3; as a single loop that executes v1[i] = a*v2[i] + v3[i]; avoiding any temporaries or multiple passes. However, 表达式模板 make the same optimization technique available for any C++ container, and the majority of numeric libraries prefer expression templates to valarrays for flexibility. Some C++ standard library implementations use expression templates to implement efficient operations on std::valarray
(e.g. GNU libstdc++ and LLVM libc++), and only rarely valarrays are optimized any further, e.g. in Intel Parallel Studio.[编辑] 会员类型
会员类型
|
Definition |
value_type
|
T
|
[编辑] 成员函数
构建新的数字阵列 (公共成员函数) | |
解构的数字数组 (公共成员函数) | |
分配的内容 (公共成员函数) | |
获取/设置valarray的元素,切片,或面罩 原文: get/set valarray element, slice, or mask (公共成员函数) | |
适用于一元算术运算符的valarray的每个元素 原文: applies a unary arithmetic operator to each element of the valarray (公共成员函数) | |
适用于复合赋值操作符的valarray的每个元素 原文: applies compound assignment operator to each element of the valarray (公共成员函数) | |
掉期与其他的valarray (公共成员函数) | |
返回valarray的的大小 (公共成员函数) | |
改变valarray的大小 (公共成员函数) | |
计算所有元素的总和 (公共成员函数) | |
返回最小的元素 (公共成员函数) | |
返回的最大元素 (公共成员函数) | |
零填充的valarray的移动的元素 原文: zero-filling shift the elements of the valarray (公共成员函数) | |
元素的valarray的循环移位 原文: circular shift of the elements of the valarray (公共成员函数) | |
applies a function to every element of a valarray (公共成员函数) |
[编辑] 非成员函数
(C++11) |
(函数模板) |
(C++11) |
专业std::begin (函数模板) |
(C++11) |
模板特化 std::end (函数模板) |
二元运算符的每个元素的两个valarrays,或valarray的和值 原文: applies binary operators to each element of two valarrays, or a valarray and a value (函数模板) | |
比较两个valarrays或valarray的一个值 原文: compares two valarrays or a valarray with a value (函数模板) | |
std::absvalarray的每个元素的功能 原文: applies the function std::abs to each element of valarray (函数模板) | |
| |
std::expvalarray的每个元素的功能 原文: applies the function std::exp to each element of valarray (函数模板) | |
std::logvalarray的每个元素的功能 原文: applies the function std::log to each element of valarray (函数模板) | |
std::log10valarray的每个元素的功能 原文: applies the function std::log10 to each element of valarray (函数模板) | |
| |
适用的功能std::pow两个valarrays或valarray的和一个值 原文: applies the function std::pow to two valarrays or a valarray and a value (函数模板) | |
std::sqrtvalarray的每个元素的功能 原文: applies the function std::sqrt to each element of valarray (函数模板) | |
| |
std::sinvalarray的每个元素的功能 原文: applies the function std::sin to each element of valarray (函数模板) | |
std::cosvalarray的每个元素的功能 原文: applies the function std::cos to each element of valarray (函数模板) | |
std::tanvalarray的每个元素的功能 原文: applies the function std::tan to each element of valarray (函数模板) | |
std::asinvalarray的每个元素的功能 原文: applies the function std::asin to each element of valarray (函数模板) | |
std::acosvalarray的每个元素的功能 原文: applies the function std::acos to each element of valarray (函数模板) | |
std::atanvalarray的每个元素的功能 原文: applies the function std::atan to each element of valarray (函数模板) | |
适用的功能std::atan2到valarray的和一个值 原文: applies the function std::atan2 to a valarray and a value (函数模板) | |
| |
std::sinhvalarray的每个元素的功能 原文: applies the function std::sinh to each element of valarray (函数模板) | |
std::coshvalarray的每个元素的功能 原文: applies the function std::cosh to each element of valarray (函数模板) | |
std::tanhvalarray的每个元素的功能 原文: applies the function std::tanh to each element of valarray (函数模板) |
[编辑] Helper类
BLAS-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[] (类模板) |