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对象。

成员

Hh305260.collapse_all(zh-cn,VS.110).gif公共构造函数

名称

说明

array_view::array_view 构造函数

初始化 array_view 类的新实例。 没有默认构造函数的array<T,N>。 所有构造函数被限制为仅在 CPU 上运行,并且不能 Direct3D 目标系统上执行。

array_view::~array_view 析构函数

销毁 array_view 对象。

Hh305260.collapse_all(zh-cn,VS.110).gif公共方法

名称

说明

array_view::copy_to 方法

将复制的内容array_view要通过调用指定的目标位置对象copy(*this, dest)。

array_view::data 方法

将指针返回到原始数据的array_view

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对象的不同等级使用此array_view对象的数据。

Hh305260.collapse_all(zh-cn,VS.110).gif公共运算符

名称

说明

array_view::operator() 运算符

返回由指定的参数或参数的元素的值。

array_view::operator[] 运算符

返回参数指定的元素。

array_view::operator= 运算符

将指定的内容复制array_view到此对象。

Hh305260.collapse_all(zh-cn,VS.110).gif公共常量

名称

说明

array_view::rank 常量

将存储数组的秩array_view对象。

Hh305260.collapse_all(zh-cn,VS.110).gif数据成员

名称

说明

array_view::extent 数据成员

获取extent对象,它定义形状的array_view对象。

备注

array_view类表示的视图的数据中包含的数组对象或部分下的array对象。

您可以访问array_view对象的源数据的位置 (本地) 或在不同的加速器或一致性的域 (远程)。 在远程访问对象时,视图是复制和缓存所需。 除外的自动缓存,效果array_view对象具有性能配置文件相似的array对象。 通过视图访问数据时可能会导致轻微的性能下降。

有三种远程使用情况:

  • 视图为系统内存的指针传递的方式 parallel_for_each 调用加速器和加速器访问。

  • 视图上加速键的数组传递的方式parallel_for_each调用另一个加速器以及那里访问。

  • 访问数组上加速器视图时,CPU 上。

任何一种情况下,被引用的视图复制运行时到远程位置,如果修改的调用和array_view对象,请将其复制到本地位置。 运行时可能会优化复制回更改的过程、 可能复制仅更改的元素,或也可以复制不变的部分。 重叠的array_view以保持参照完整性,在远程位置不能保证一个数据源上的对象。

您必须同步多线程的访问同一数据源。

运行时产生的高速缓存中的数据有关的以下保证array_view对象:

  • 对所有 well-synchronized 访问array对象和array_view在其上按程序顺序的对象遵守串行发生-关系之前。

  • 若要重叠的所有 well-synchronized 访问array_view对象相同的加速器array对象是通过别名array对象。 他们会总共发生-之前遵循程序顺序的关系。 没有任何缓存。 如果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)