初始化新实例的数组类。没有默认构造函数的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
命名空间: 并发