初始化新实例的数组类。没有默认构造函数的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
输入的 interator 的类型。_Src
若要复制的对象。_Src_first
到源容器开始迭代器。_Src_last
结束迭代器中的源容器。_Other
其他数据源。_Rank
部分中的排位。_Value_type
复制的元素的数据类型。
备注
临时构造函数有两个 accelerator_view 作为构造函数的参数的对象。临时数组作为提示用于优化之间 (CPU 和 Direct3D 加速) 之间的两个加速键的重复的副本。临时数组为数据传输进行了优化,并且没有稳定的用户空间内存。它们提供支持,具有正确的硬件的对齐方式以确保有效地直接内存访问 (DMA) 传输之间的 CPU 和加速器 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
命名空间: 并发