名稱空間
變體
操作

std::valarray

來自 cppreference.com
< cpp‎ | 數值
 
 
 
 
定義於標頭檔案 <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

[編輯] 成員函式

構造新的數值陣列
(public member function) [編輯]
銷燬數值陣列
(public member function) [編輯]
賦值內容
(public member function) [編輯]
獲取/設定 valarray 元素、切片或掩碼
(public member function) [編輯]
對 valarray 的每個元素應用一元算術運算子
(public member function) [編輯]
將複合賦值運算子應用於 valarray 的每個元素
(public member function) [編輯]
與另一個 valarray 交換
(public member function) [編輯]
返回 valarray 的大小
(public member function) [編輯]
改變 valarray 的大小
(public member function) [編輯]
計算所有元素的和
(public member function) [編輯]
返回最小元素
(public member function) [編輯]
返回最大元素
(public member function) [編輯]
對 valarray 的元素進行零填充移位
(public member function) [編輯]
對 valarray 的元素進行迴圈移位
(public member function) [編輯]
將函式應用於 valarray 的每個元素
(public member function) [編輯]

[編輯] 非成員函式

特化 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 的每個元素
(函式模板) [編輯]

[編輯] 輔助類

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

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

[編輯] 參見

(C++26)
basic_simd 的便利別名模板,可以指定其寬度
(別名模板)[編輯]
(C++26)
basic_simd_mask 的便利別名模板,可以指定其寬度
(別名模板)[編輯]
(並行技術規範 v2)
資料並行向量型別
(類模板) [編輯]
(並行技術規範 v2)
元素型別為 bool 的資料並行型別
(類模板) [編輯]