命名空間
變體
動作

std::valarray

出自 cppreference.com
 
 
 
 
定義於標頭檔 <valarray>
template< class T >
class valarray;

std::valarray 是用於表示與操作數值陣列的類別。它支援元素級(element-wise)的數學運算,以及多種形式的廣義下標運算子、切片(slicing)與間接存取。

目錄

[編輯] 附註

std::valarray 及其輔助類別被定義為不含特定形式的別名(aliasing),因此允許對這些類別進行最佳化,效果類似於 C 程式語言中的 restrict 關鍵字。此外,接收 valarray 引數的函式與運算子可以回傳代理物件(proxy objects),使編譯器能夠將如 v1 = a * v2 + v3; 的表示式最佳化為執行 v1[i] = a * v2[i] + v3[i]; 的單一迴圈,從而避免任何臨時物件或多次遍歷。然而,表示式模板(expression templates)使相同的最佳化技術能應用於任何 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 的元素進行零填充位移(zero-filling shift)
(公開成員函式) [編輯]
對 valarray 的元素進行循環位移(circular shift)
(公開成員函式) [編輯]
對 valarray 的每個元素應用函式
(公開成員函式) [編輯]

[編輯] 非成員函式

特化 std::swap 演算法
(函式模板) [編輯]
多載 std::begin
(函式模板) [編輯]
特化 std::end
(函式模板) [編輯]
對兩個 valarray 的每個元素,或一個 valarray 與一個數值套用二元運算子
(函式模板) [編輯]
比較兩個 valarray 或一個 valarray 與一個值
(函式模板) [edit]
對 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 函式
(函式模板) [編輯]
對一個 valarray 與一個數值應用 std::atan2 函式
(函式模板) [編輯]
雙曲函式
對 valarray 的每個元素應用 std::sinh 函式
(函式模板) [編輯]
對 valarray 的每個元素應用 std::cosh 函式
(函式模板) [編輯]
對 valarray 的每個元素應用 std::tanh 函式
(函式模板) [編輯]

[編輯] 輔助類別

valarray 的類 BLAS 切片:起始索引、長度、步長
(類別) [編輯]
應用 slice 後,對 valarray 子集的代理
(類別模板) [編輯]
valarray 的廣義切片:起始索引、長度集合、步長集合
(類別) [編輯]
應用 gslice 後,對 valarray 子集的代理
(類別模板) [編輯]
應用布林遮罩 operator[] 後,對 valarray 子集的代理
(類別模板) [編輯]
應用間接 operator[] 後,對 valarray 子集的代理
(類別模板) [編輯]

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

[編輯] 參見

(C++26)
用於 basic_simd 的便捷別名模板,可指定其寬度
(別名模板)[編輯]
(C++26)
用於 basic_simd_mask 的便捷別名模板,可指定其寬度
(別名模板)[編輯]
(平行運算 TS v2)
資料並行向量型別
(類別模板) [編輯]
(平行運算 TS v2)
元素型別為 bool 的資料並行型別
(類別模板) [編輯]
English Deutsch 日本語 中文(简体) 中文(繁體)