名稱空間
變體
操作

std::extents, std::dextents, std::dims

來自 cppreference.com
< cpp‎ | 容器‎ | mdspan
 
 
 
 
 
定義於標頭檔案 <mdspan>
template< class IndexType, std::size_t... Extents >
class extents;
(1) (C++23 起)
template< class IndexType, std::size_t Rank >
using dextents = /* see below */
(2) (C++23 起)
template< std::size_t Rank, class IndexType = std::size_t >
using dims = std::dextents<IndexType, Rank>;
(3) (C++26 起)
1) 表示一個多維索引空間,其秩等於 sizeof...(Extents)
2) 一個方便的別名模板,用於全動態的 extents。令 d 表示 std::dynamic_extent,它的每個特化 dextents<IndexType, Rank> 等價於 extents<IndexType /*, d, d, ..., d*/> (即 d 重複了 Rank 次)。
3) 一個方便的別名模板,用於全動態的 extents,其中預設索引型別為 std::size_t

extents 的每個特化都符合 regular 概念,並且是 TriviallyCopyable 的。

目錄

[編輯] 模板引數

IndexType - 每個非動態 Extents 的型別。應為有符號或無符號整數型別。否則,程式格式錯誤
Extents - 表示每個秩索引的範圍(整數區間的尺寸)。它的每個元素要麼等於 std::dynamic_extent (在這種情況下,它表示一個*動態範圍*,範圍大小將動態確定),要麼可以表示為 IndexType 型別的值(此時它表示一個*靜態範圍*,範圍大小就是它的值),否則程式格式錯誤
Rank - 表示全動態 extents 的秩

[編輯] 成員型別

成員型別 定義
index_type IndexType
size_type std::make_unsigned_t<index_type>
rank_type std::size_t

[編輯] 資料成員

成員名稱 (Member name) 定義
std::array<index_type, rank_dynamic()> dynamic-extents (private) 一個儲存每個動態範圍大小的陣列。
(僅用於闡釋的成員物件*)

[編輯] 成員函式

構造一個 extents
(公共成員函式) [編輯]
觀察器
[靜態]
返回 extents 的靜態秩
(公共靜態成員函式) [編輯]
返回 extents 的動態秩
(公共靜態成員函式) [編輯]
返回特定等級索引處 extents 的靜態範圍大小
(公共靜態成員函式) [編輯]
返回 extents 在特定秩索引處的動態範圍大小
(公共成員函式) [編輯]
輔助函式
返回範圍 [0i) 內的範圍大小的乘積
(僅用於說明的成員函式*)[編輯]
返回範圍 [i + 1rank()) 內的範圍大小的乘積
(僅用於說明的成員函式*)[編輯]
將輸入轉換為整數型別
(僅用於說明的成員函式*)[編輯]
返回某個秩索引以下動態範圍的數量
(僅用於說明的成員函式*)[編輯]
返回數字 r,使得對於某個引數 i,範圍 [0r + 1) 中恰好有 i + 1 個動態範圍
(僅用於說明的成員函式*)[編輯]

[編輯] 非成員函式

比較兩個 extents 在每個維度上的底層範圍
(函式) [編輯]

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

[編輯] 示例

[編輯] 另見

(C++11)
獲取陣列型別的維數
(類模板) [編輯]
(C++11)
獲取陣列型別在指定維度上的大小
(類模板) [編輯]