array_view 類別

表示保留於另一個容器裡的資料在 N 維下的檢視。

template <
   typename _Value_type,
   int _Rank = 1
>
class array_view : public _Array_view_base<_Rank,sizeof(_Value_type)/sizeof(int)>;
                     
template <
   typename _Value_type,
   int _Rank                     
>
class array_view<const _Value_type, _Rank> : public _Array_view_base<_Rank,sizeof(_Value_type)/sizeof(int)>;

參數

  • _Value_type
    array_view 物件內項目的資料型別。

  • _Rank
    array_view 物件的等級。

Members

Hh305260.collapse_all(zh-tw,VS.110).gif公用建構函式

名稱

描述

array_view::array_view 建構函式

初始化 array_view 類別的新執行個體。 沒有 array<T,N> 的預設建構函式。 所有建構函式都被限制只能在 CPU 上執行,且無法在 Direct3D 目標上執行。

array_view::~array_view 解構函式

終結 array_view 物件。

Hh305260.collapse_all(zh-tw,VS.110).gif公用方法

名稱

描述

array_view::copy_to 方法

藉由呼叫 copy(*this, dest)複製 array_view 物件的內容複製到指定的目的端。

array_view::data 方法

傳回指向 array_view的未經處理資料 (Raw Data)的指標。

array_view::discard_data 方法

捨棄以此檢視為基礎的目前資料。

array_view::get_extent 方法

傳回物件的 array_view 範圍的物件。

array_view::refresh 方法

告知 array_view 物件其所繫結的記憶體已在 array_view 介面外遭到修改。 對方法的呼叫會讓所有快取的資訊失效。

array_view::reinterpret_as 方法

array_view 會傳回包含二維字串陣列的物件。

array_view::section 方法

傳回指定之來源的子區段 array_view 物件,且可選擇性指定範圍。

array_view::synchronize 方法

同步處理所有對 array_view 物件返回其來源資料。

array_view::synchronize_async 方法

非同步地將對 array_view 所做的任何修改與其來源資料同步處理。

array_view::view_as 方法

利用此 array_view 物件的資料產生一個不同 rank 的 array_view 物件。

Hh305260.collapse_all(zh-tw,VS.110).gif公用運算子

名稱

描述

array_view::operator() 運算子

傳回由一或多個參數指定的元素的值。

array_view::operator[] 運算子

傳回由參數指定的項目。

array_view::operator= 運算子

將此 array_view 物件的內容寫入 。

Hh305260.collapse_all(zh-tw,VS.110).gif公用常數

名稱

描述

array_view::rank 常數

儲存 array_view 物件的秩。

Hh305260.collapse_all(zh-tw,VS.110).gif資料成員

名稱

描述

array_view::extent 資料成員

取得定義 array_view 物件形狀的 extent 物件。

備註

array_view 類別表示檢視在 陣列 物件或 array 物件的子區段中所含的資料。

您可以存取資料來源所在的 array_view 物件 (原生) 或不同的快速鍵或壓縮領域 (遠端)。 當您以遠端方式存取物件,檢視依需要將複製及快取。 除了自動的角色快取, array_view 物件具有效能設定檔類似。 array 物件。 當您透過檢視表存取資料時,會有一個小的效能損失。

有三個遠端使用案例:

  • 對系統記憶體記憶體指標的檢視透過 parallel_for_each 呼叫在快速傳遞至快速和存取。

  • 變更位於快速之陣列的一個檢視 parallel_for_each 藉由呼叫傳遞至另一個快速存取以及中。

  • 變更位於快速之陣列的一個檢視 CPU 存取。

在任何一種情況下,參考的檢視中顯示遠端位置的執行階段複製,則為,如果修改由 array_view 物件上的呼叫,複製到本機位置。 執行階段會最佳化重新複製變更,可能只複製已變更之項目的處理序或可能也會複製未變更的部分。 在資料來源的重疊 array_view 物件沒有在遠端位置保證維護參考完整性。

您必須同步處理至相同資料來源的任何多執行緒的存取權。

執行階段進行的下列保證快取在 array_view 物件的資料:

  • array 物件和一個 array_view 物件的所有同步存取這個程式按順序相容發生在建立關聯性之前執行。

  • 重疊 array_view 物件的所有同步化存取在單一 array 物件的相同快速透過 array 物件別名。 它們會出現在 CLS 程式命令的關聯性之前的總數。 不使用快取。 如果 array_view 物件在不同的加速器上執行,存取順序尚未定義,因此會出現競爭情形。

當您建立 array_view 物件使用指標在系統記憶體時,您必須透過 array_view 指標只變更檢視 array_view 物件。 否則,您必須呼叫以附加至系統指標的其中一個 refresh()array_view 物件,如果基礎原生記憶體直接變更,而不是透過 array_view 物件。 任一動作都會告知 array_view 物件基礎原生記憶體發生變更,且任何位於加速器上的過時複本。 如果您遵循這些方針,以指標的檢視與之執行階段提供給資料平行陣列檢視。

繼承階層架構

_Array_view_shape

_Array_view_base

array_view

需求

標頭檔: amp.h

**命名空間:**並行

請參閱

參考

Concurrency 命名空間 (C++ AMP)