次の方法で共有


array::array コンストラクター

新しいインスタンスを初期化する、 アレイクラス。既定のコンス トラクターはありませんarray<T,N>。すべてのコンス トラクターは、CPU 上でのみ実行されます。Direct3D のターゲット上では実行できません。

explicit array(
   const Concurrency::extent<_Rank> & _Extent                     
) ;
                     
explicit array(
   int _E0                     
) ;
                     
explicit array(
   int _E0,
   int _E1                     
) ;
                     
explicit array(
   int _E0,
   int _E1,
   int _E2                     
) ;
                     
array(
   const Concurrency::extent<_Rank>& _Extent,
   Concurrency::accelerator_view _Av                     
) ;
                     
array(
   int _E0,
   Concurrency::accelerator_view _Av                     
) ;
                     
array(
   int _E0,
   int _E1,
   Concurrency::accelerator_view _Av                     
) ;
                     
array(
   int _E0,
   int _E1,
   int _E2,
   Concurrency::accelerator_view _Av                     
) ;
                     
array(
   const Concurrency::extent<_Rank>& _Extent,
   Concurrency::accelerator_view _Av,
   Concurrency::accelerator_view _Associated_Av                     
) ;
                     
array(
   int _E0,
   accelerator_view _Av,
   Concurrency::accelerator_view _Associated_Av                     
) ;
                     
array(
   int _E0,
   int _E1,
   Concurrency::accelerator_view _Av,
   Concurrency::accelerator_view _Associated_Av                     
) ;
                     
array(
   int _E0,
   int _E1,
   int _E2,
   Concurrency::accelerator_view _Av,
   Concurrency::accelerator_view _Associated_Av                     
) ;
                     
template <
   typename _InputIterator                     
>
array(
   const Concurrency::extent<_Rank>& _Extent,
   _InputIterator _Src_first,
   _InputIterator _Src_last                     
) ;
                     
template <
   typename _InputIterator                     
>
array(
   const Concurrency::extent<_Rank>& _Extent,
   _InputIterator _Src_first                     
) ;
                     
template <
   typename _InputIterator                     
>
array(
   int _E0,
   _InputIterator _Src_first,
   _InputIterator _Src_last                     
) ;
                     
template <
   typename _InputIterator                     
>
array(
   int _E0,
   _InputIterator _Src_first                     
) ;
                     
template <
   typename _InputIterator                     
>
array(
   int _E0,
   int _E1,
   _InputIterator _Src_first,
   _InputIterator _Src_last                     
) ;
                     
template <
   typename _InputIterator                     
>
array(
   int _E0,
   int _E1,
   _InputIterator _Src_first                     
) ;
                     
template <
   typename _InputIterator                     
>
array(
   int _E0,
   int _E1,
   int _E2,
   _InputIterator _Src_first,
   _InputIterator _Src_last                     
) ;
                     
template <
   typename _InputIterator                     
>
array(
   int _E0,
   int _E1,
   int _E2,
   _InputIterator _Src_first                     
) ;
                     
template <
   typename _InputIterator                     
>
array(
   const Concurrency::extent<_Rank>& _Extent,
   _InputIterator _Src_first,
   _InputIterator _Src_last,
   Concurrency::accelerator_view _Av                     
) ;
                     
template <
   typename _InputIterator                     
>
array(
   const Concurrency::extent<_Rank>& _Extent,
   _InputIterator _Src_first,
   Concurrency::accelerator_view _Av                     
) ;
                     
template <
   typename _InputIterator                     
>
array(
   int _E0,
   _InputIterator _Src_first,
   _InputIterator _Src_last,
   Concurrency::accelerator_view _Av                     
) ;
                     
template <
   typename _InputIterator                     
>
array(
   int _E0,
   _InputIterator _Src_first,
   Concurrency::accelerator_view _Av                     
) ;
                     
template <
   typename _InputIterator                     
>
array(
   int _E0,
   int _E1,
   _InputIterator _Src_first,
   _InputIterator _Src_last,
   Concurrency::accelerator_view _Av                     
) ;
                     
template <
   typename _InputIterator                     
>
array(
   int _E0,
   int _E1,
   _InputIterator _Src_first,
   Concurrency::accelerator_view _Av                     
) ;
                     
template <
   typename _InputIterator                     
>
array(
   int _E0,
   int _E1,
   int _E2,
   _InputIterator _Src_first,
   _InputIterator _Src_last,
   Concurrency;
                     
template <
   typename _InputIterator                     
>
array(
   int _E0,
   int _E1,
   int _E2,
   _InputIterator _Src_first,
   Concurrency::accelerator_view _Av                     
) ;
                     
template <
   typename _InputIterator                     
>
array(
   const Concurrency::extent<_Rank>& _Extent,
   _InputIterator _Src_first,
   _InputIterator _Src_last,
   Concurrency::accelerator_view _Av,
   Concurrency::accelerator_view _Associated_Av                     
) ;
                     
template <
   typename _InputIterator                     
>
array(
   const Concurrency::extent<_Rank>& _Extent,
   _InputIterator _Src_first,
   Concurrency::accelerator_view _Av,
   Concurrency::accelerator_view _Associated_Av                     
) ;
                     
template <
   typename _InputIterator                     
>
array(
   int _E0,
   _InputIterator _Src_first,
   _InputIterator _Src_last,
   Concurrency::accelerator_view _Av,
   Concurrency::accelerator_view _Associated_Av                     
) ;
                     
template <
   typename _InputIterator                     
>
array(
   int _E0,
   _InputIterator _Src_first,
   Concurrency::accelerator_view _Av,
   Concurrency::accelerator_view _Associated_Av                     
);
                     
template <
   typename _InputIterator                     
>
array(
   int _E0,
   int _E1,
   _InputIterator _Src_first,
   _InputIterator _Src_last,
   Concurrency::accelerator_view _Av,
   Concurrency::accelerator_view _Associated_Av                     
) ;
                     
template <
   typename _InputIterator                     
>
array(
   int _E0,
   int _E1,
   _InputIterator _Src_first,
   Concurrency::accelerator_view _Av,
   Concurrency::accelerator_view _Associated_Av                     
) ;
                     
template <
   typename _InputIterator                     
>
array(
   int _E0,
   int _E1,
   int _E2,
   _InputIterator _Src_first,
   _InputIterator _Src_last,
   Concurrency::accelerator_view _Av,
   Concurrency::accelerator_view _Associated_Av                     
) ;
                     
template <
   typename _InputIterator                     
>
array(
   int _E0,
   int _E1,
   int _E2,
   _InputIterator _Src_first,
   Concurrency::accelerator_view _Av,
   Concurrency::accelerator_view _Associated_Av                     
) ;
                     
explicit array(
   const array_view<const _Value_type,
   _Rank>& _Src                     
) ;
                     
array(
   const array_view<const _Value_type,
   _Rank>& _Src,
   accelerator_view _Av                     
) ;
                     
array(
   const array_view<const _Value_type,
   _Rank>& _Src,
   accelerator_view _Av,
   accelerator_view _Associated_Av                     
) ;
                     
array(
   const array& _Other                     
) ;
                     
array(
   array && _Other                     
) ;

パラメーター

  • _Associated_Av
    Accelerator_view は、配列の優先ターゲットの場所を指定します。

  • _Av
    Accelerator_view 配列の場所を指定するオブジェクト。

  • _Extent
    配列の各次元の範囲。

  • _E0
    このセクションの範囲の最上位のコンポーネントです。

  • _E1
    このセクションの大きさの次へ-する-最上位のコンポーネントです。

  • _E2
    このセクションの範囲の最下位のコンポーネントです。

  • InputIterator
    入力の: イテレータの種類を指定します。

  • _Src
    オブジェクトをコピーするには。

  • _Src_first
    最初の反復子はソース コンテナーに。

  • _Src_last
    終了反復子はソース コンテナーにします。

  • _Other
    その他のデータ ソース。

  • _Rank
    セクションのランク。

  • _Value_type
    コピーされる要素のデータ型。

解説

ステージングのコンス トラクターが 2 つある accelerator_view オブジェクト コンス トラクターのパラメーターとしてします。ステージングの配列は、ヒントとして CPU と、Direct3D アクセラレータの間の 2 つのアクセラレータの間繰り返しコピーを最適化するために使用されます。ステージングのアレイでは、データ転送用に最適化された、安定のユーザー領域のメモリはありません。CPU とアクセラレータ間を効率的にダイレクト メモリ アクセス (DMA) 転送があるかどうかを確認するのには、適切なハードウェアの配置が DirectX ステージング バッファーによってバックアップされます。accelerator_viewのステージングの配列プロパティで構築された最初のアクセラレータの引数の値を返します。変更または転送操作では、関係している場合、次のコードに示すように、ステージングの配列の内容を確認することができません。

class SimulationServer 
{ 
    array<float,2> acceleratorArray; 
    array<float,2> stagingArray; 
public: 
    SimulationServer(const accelerator_view& av) 
        :acceleratorArray(extent<2>(1000,1000), av), 
         stagingArray(extent<2>(1000,1000), accelerator("cpu"), 
         accelerator("gpu")) 
    { 
    } 
 
    void OnCompute() 
    { 
        array<float,2> &a = acceleratorArray; 
        ApplyNetworkChanges(stagingArray.data()); 
        
        // Starting here, you can't change or examine contents.
        a = stagingArray; 
        parallel_for_each(a.extents, [&](index<2> idx) 
        { 
           // Update a[idx] according to simulation. 
        } 
        stagingArray = a; 
        
        // Starting here, you can change or examine contents.
        SendToClient(stagingArray.data()); 
     } 
}; 

必要条件

ヘッダー: amp.h

名前空間: Concurrency

参照

関連項目

array クラス