std::valarray

出自cppreference.com
< 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_typeT

[編輯] 成員函數

構造新的數值數組
(公開成員函數) [編輯]
析構數值數組
(公開成員函數) [編輯]
為內容賦值
(公開成員函數) [編輯]
獲取/設置 valarray 數組元素、切片或掩碼
(公開成員函數) [編輯]
對 valarray 的每個元素運用一元算術運算符
(公開成員函數) [編輯]
對 valarray 的每個元素應用複合賦值運算符
(公開成員函數) [編輯]
與另一 valarray 交換
(公開成員函數) [編輯]
返回 valarray 的大小
(公開成員函數) [編輯]
更改 valarray 的大小
(公開成員函數) [編輯]
計算所有元素的和
(公開成員函數) [編輯]
返回最小元素
(公開成員函數) [編輯]
返回最大的元素
(公開成員函數) [編輯]
以填入零的方式移動 valarray 的元素
(公開成員函數) [編輯]
循環移動 valarray 的元素
(公開成員函數) [編輯]
valarray 的每個元素應用一個函數
(公開成員函數) [編輯]

[編輯] 非成員函數

特化 std::swap 演算法
(函數模板) [編輯]
重載 std::begin
(函數模板) [編輯]
特化的 std::end
(函數模板) [編輯]
應用二元運算符到兩個 valarray 的每個元素,或一個 valarray 的每個元素和一個值
(函數模板) [編輯]
比較兩個 valarrays,或比較一個 valarray 和一個值
(函數模板) [編輯]
應用函數 absvalarray 的每個元素
(函數模板) [編輯]
指數函數
應用函數 std::exp 到 valarray 的每個元素
(函數模板) [編輯]
應用函數 std::log 到 valarray 的每個元素
(函數模板) [編輯]
應用函數 std::log10 到 valarray 的每個元素
(函數模板) [編輯]
冪函數
應用函數 std::pow 到二個 valarray 或一個 valarray 與一個值
(函數模板) [編輯]
應用函數 std::sqrt 到 valarray 的每個元素
(函數模板) [編輯]
三角函數
應用函數 std::sinvalarray 的每個元素
(函數模板) [編輯]
應用函數 std::cos 到 valarray 的每個元素
(函數模板) [編輯]
應用函數 std::tan 到 valarray 的每個元素
(函數模板) [編輯]
應用函數 std::asin 到 valarray 的每個元素
(函數模板) [編輯]
應用函數 std::acos 到 valarray 的每個元素
(函數模板) [編輯]
應用函數 std::atan 到 valarray 的每個元素
(函數模板) [編輯]
應用函數 std::atan2 到一個 valarray 和一個值
(函數模板) [編輯]
雙曲函數
應用函數 std::sinhvalarray 的每個元素
(函數模板) [編輯]
應用函數 std::coshvalarray 的每個元素
(函數模板) [編輯]
應用函數 std::tanh 到 valarray 的每個元素
(函數模板) [編輯]

[編輯] 輔助類

valarray 的 BLAS 式切片:起始下標、長度、跨度
(類) [編輯]
valarray 應用切片後的子集的代理
(類模板) [編輯]
valarray 的通用切片:起始下標、長度集、步幅集
(類) [編輯]
valarray 應用 gslice 後的子集的代理
(類模板) [編輯]
到應用布爾掩碼 operator[] 後的 valarray 子集的代理
(類模板) [編輯]
到應用間接 operator[] 後的 valarray 子集的代理。
(類模板) [編輯]

[編輯] 推導指引(C++17 起)

[編輯] 參閱

可以指定寬度的 basic_simd 的便利別名模板
(別名模板) [編輯]
可以指定寬度的 basic_simd_mask 的便利別名模板
(別名模板) [編輯]
(並行 TS v2)
數據並行向量類型
(類模板) [編輯]
(並行 TS v2)
元素類型為 bool 的數據並行類型
(類模板) [編輯]