Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az adatok gyorsítóba való áthelyezéséhez használt adattárolót jelöli.
Szemantika
template <typename value_type, int _Rank>
friend class array;
Paraméterek
value_type
Az adatok elemtípusa.
_Rang
A tömb rangja.
Tagok
Nyilvános konstruktorok
| Név | Leírás |
|---|---|
| tömbkonstruktor | Inicializálja a array osztály új példányát. |
| ~tömb destruktor | Elpusztítja az array objektumot. |
Nyilvános metódusok
| Név | Leírás |
|---|---|
| copy_to | Másolja a tömb tartalmát egy másik tömbbe. |
| adat | A tömb nyers adataira mutató mutatót ad vissza. |
| get_accelerator_view | A tömb lefoglalási helyét képviselő accelerator_view objektumot adja vissza. Ez a tulajdonság csak a processzoron érhető el. |
| get_associated_accelerator_view | Lekéri a második accelerator_view objektumot, amely paraméterként lesz átadva, amikor egy átmeneti konstruktort meghív az array objektum példányosítására. |
| get_cpu_access_type | A tömb access_type adja vissza. Ez a módszer csak a processzoron érhető el. |
| get_extent | A tömb mértékobjektumát adja vissza. |
| reinterpret_as | Egydimenziós tömböt ad vissza, amely az objektum összes elemét array tartalmazza. |
| szakasz | A megadott forrásnál lévő és adott kiterjedésű objektum alszakaszát array adja vissza. |
| view_as | Az objektumból array létrehozott array_view objektumot adja vissza. |
Nyilvános operátorok
| Név | Leírás |
|---|---|
operator std::vector<value_type> |
A copy(*this, vector) tömb implicit átalakítása std::vector objektummá. |
| operátor() | A paraméterek által megadott elemértéket adja vissza. |
| operátor[] | A megadott indexben lévő elemet adja vissza. |
| operátor= | Másolja a megadott array objektum tartalmát ebbe a fájlba. |
Nyilvános állandók
| Név | Leírás |
|---|---|
| rang állandó | A tömb rangját tárolja. |
Nyilvános adatok tagjai
| Név | Leírás |
|---|---|
| accelerator_view | Lekéri az accelerator_view objektumot, amely a tömb lefoglalási helyét jelöli. Ez a tulajdonság csak a processzoron érhető el. |
| associated_accelerator_view | Lekéri a második accelerator_view objektumot, amely paraméterként lesz átadva, amikor egy átmeneti konstruktort meghív az array objektum példányosítására. |
| cpu_access_type | Lekéri a access_type , amely azt jelzi, hogy a processzor hogyan férhet hozzá a tömb tárolóhelyéhez. |
| kiterjedés | Lekéri a tömb alakját meghatározó mértéket. |
Megjegyzések
A típus array<T,N> egy sűrű és szabályos (nem szaggatott) N-dimenziós tömböt jelöl, amely egy adott helyen található, például egy gázpedál vagy a PROCESSZOR. A tömb Telemeinek adattípusa a célgyorsítóval kompatibilis típus. Bár a rang, N( a tömb statikusan van meghatározva, és a típus része, a tömb mértékét a futtatókörnyezet határozza meg, és osztály extent<N>használatával fejezi ki .
A tömbök tetszőleges számú dimenzióval rendelkezhetnek, bár bizonyos funkciók az 1., a 2. és a 3. ranggal rendelkező objektumokra array specializálódtak. Ha kihagyja a dimenzióargumentumot, az alapértelmezett érték 1.
A tömbadatok egybefüggően lesznek elhelyezve a memóriában. A legkevésbé jelentős dimenzióban egymástól eltérő elemek a memóriában szomszédosak.
A tömbök logikailag értéktípusoknak minősülnek, mivel ha egy tömböt átmásolnak egy másik tömbbe, a rendszer mély másolatot készít. Két tömb soha nem mutat ugyanarra az adatra.
A array<T,N> típust több forgatókönyvben is használják:
Adattárolóként, amely gyorsítón végzett számításokhoz használható.
Adattárolóként a gazda cpu memóriájának tárolására (amely más tömbökbe és tömbökből másolható).
Átmeneti objektumként, amely gyors közvetítőként szolgál a gazdagépről az eszközre másolt példányokban.
Öröklési hierarchia
array
Követelmények
fejléc: amp.h
névtér: egyidejűség
~tömb
Elpusztítja az array objektumot.
~array() restrict(cpu);
accelerator_view
Lekéri az accelerator_view objektumot, amely a tömb lefoglalási helyét jelöli. Ez a tulajdonság csak a processzoron érhető el.
__declspec(property(get= get_accelerator_view)) Concurrency::accelerator_view accelerator_view;
tömb
Inicializálja a tömbosztály új példányát. Nincs alapértelmezett konstruktor a következőhöz array<T,N>: . Minden konstruktor csak a CPU-n fut. Nem hajthatók végre Direct3D-célon.
explicit array(
const Concurrency::extent<_Rank>& _Extent) restrict(cpu);
explicit array(
int _E0) restrict(cpu);
explicit array(
int _E0,
int _E1) restrict(cpu);
explicit array(
int _E0,
int _E1,
int _E2) restrict(cpu);
array(
const Concurrency::extent<_Rank>& _Extent,
Concurrency::accelerator_view _Av
access_type _Cpu_access_type = access_type_auto) restrict(cpu);
array(
int _E0,
Concurrency::accelerator_view _Av
access_type _Cpu_access_type = access_type_auto) restrict(cpu);
array(
int _E0,
int _E1,
Concurrency::accelerator_view _Av
access_type _Cpu_access_type = access_type_auto) restrict(cpu);
array(
int _E0,
int _E1,
int _E2,
Concurrency::accelerator_view _Av
access_type _Cpu_access_type = access_type_auto) restrict(cpu);
array(
const Concurrency::extent<_Rank>& _Extent,
Concurrency::accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av) restrict(cpu);
array(
int _E0,
accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av) restrict(cpu);
array(
int _E0,
int _E1,
Concurrency::accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av) restrict(cpu);
array(
int _E0,
int _E1,
int _E2,
Concurrency::accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av) restrict(cpu);
template <typename _InputIterator>
array(
const Concurrency::extent<_Rank>& _Extent,
_InputIterator _Src_first,
_InputIterator _Src_last) restrict(cpu);
template <typename _InputIterator>
array(
const Concurrency::extent<_Rank>& _Extent,
_InputIterator _Src_first) restrict(cpu);
template <typename _InputIterator>
array(
int _E0,
_InputIterator _Src_first,
_InputIterator _Src_last) restrict(cpu);
template <typename _InputIterator>
array(
int _E0,
_InputIterator _Src_first) restrict(cpu);
template <typename _InputIterator>
array(
int _E0,
int _E1,
_InputIterator _Src_first,
_InputIterator _Src_last) restrict(cpu);
template <typename _InputIterator>
array(
int _E0,
int _E1,
_InputIterator _Src_first) restrict(cpu);
template <typename _InputIterator>
array(
int _E0,
int _E1,
int _E2,
_InputIterator _Src_first,
_InputIterator _Src_last) restrict(cpu);
template <typename _InputIterator>
array(
int _E0,
int _E1,
int _E2,
_InputIterator _Src_first) restrict(cpu);
template <typename _InputIterator>
array(
const Concurrency::extent<_Rank>& _Extent,
_InputIterator _Src_first,
_InputIterator _Src_last,
Concurrency::accelerator_view _Av
access_type _Cpu_access_type = access_type_auto) restrict(cpu);
template <typename _InputIterator>
array(
const Concurrency::extent<_Rank>& _Extent,
_InputIterator _Src_first,
Concurrency::accelerator_view _Av
access_type _Cpu_access_type = access_type_auto) restrict(cpu);
template <typename _InputIterator>
array(
int _E0,
_InputIterator _Src_first,
_InputIterator _Src_last,
Concurrency::accelerator_view _Av
access_type _Cpu_access_type = access_type_auto) restrict(cpu);
template <typename _InputIterator>
array(
int _E0,
_InputIterator _Src_first,
Concurrency::accelerator_view _Av
access_type _Cpu_access_type = access_type_auto) restrict(cpu);
template <typename _InputIterator>
array(
int _E0,
int _E1,
_InputIterator _Src_first,
_InputIterator _Src_last,
Concurrency::accelerator_view _Av
access_type _Cpu_access_type = access_type_auto) restrict(cpu);
template <typename _InputIterator>
array(
int _E0,
int _E1,
_InputIterator _Src_first,
Concurrency::accelerator_view _Av
access_type _Cpu_access_type = access_type_auto) restrict(cpu);
template <typename _InputIterator>
array(
int _E0,
int _E1,
int _E2,
_InputIterator _Src_first,
_InputIterator _Src_last,
Concurrency::accelerator_view _Av,
access_type _Cpu_access_type = access_type_auto) restrict(cpu);
template <typename _InputIterator>
array(
int _E0,
int _E1,
int _E2,
_InputIterator _Src_first,
Concurrency::accelerator_view _Av
access_type _Cpu_access_type = access_type_auto) restrict(cpu);
template <typename _InputIterator>
array(
const Concurrency::extent<_Rank>& _Extent,
_InputIterator _Src_first,
_InputIterator _Src_last,
Concurrency::accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av) restrict(cpu);
template <typename _InputIterator>
array(
const Concurrency::extent<_Rank>& _Extent,
_InputIterator _Src_first,
Concurrency::accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av) restrict(cpu);
template <typename _InputIterator>
array(
int _E0,
_InputIterator _Src_first,
_InputIterator _Src_last,
Concurrency::accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av) restrict(cpu);
template <typename _InputIterator>
array(
int _E0, _InputIterator _Src_first,
Concurrency::accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av) restrict(cpu);
template <typename _InputIterator>
array(
int _E0,
int _E1, _InputIterator _Src_first, _InputIterator _Src_last,
Concurrency::accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av) restrict(cpu);
template <typename _InputIterator>
array(
int _E0,
int _E1, _InputIterator _Src_first,
Concurrency::accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av) restrict(cpu);
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) restrict(cpu);
template <typename _InputIterator>
array(
int _E0,
int _E1,
int _E2, _InputIterator _Src_first,
Concurrency::accelerator_view _Av,
Concurrency::accelerator_view _Associated_Av) restrict(cpu);
explicit array(
const array_view<const value_type, _Rank>& _Src) restrict(cpu);
array(
const array_view<const value_type, _Rank>& _Src,
accelerator_view _Av,
access_type _Cpu_access_type = access_type_auto) restrict(cpu);
array(
const array_view<const value_type, _Rank>& _Src,
accelerator_view _Av,
accelerator_view _Associated_Av) restrict(cpu);
array(const array& _Other) restrict(cpu);
array(array&& _Other) restrict(cpu);
Paraméterek
_Associated_Av
A tömb elsődleges célhelyét meghatározó accelerator_view.
_Av
Egy accelerator_view objektum, amely meghatározza a tömb helyét.
_Cpu_access_type
A processzor tömbjének kívánt access_type . Ez a paraméter alapértelmezett értéke access_type_auto , hogy a cpu-meghatározást access_type a futtatókörnyezetre hagyja. A tömb tényleges processzora access_type lekérdezhető a get_cpu_access_type módszerrel.
_Kiterjedés
A tömb minden dimenziójának mértéke.
_E0
A szakasz terjedelmének legjelentősebb összetevője.
_E1
Ennek a szakasznak a következő-a-legfontosabb összetevője.
_E2
Ennek a szakasznak a legkisebb jelentős összetevője.
_InputIterator
A bemeneti iterátor típusa.
_Src
Objektum másolása.
_Src_first
Egy kezdő iterátor a forrástárolóba.
_Src_last
Záró iterátor a forrástárolóba.
_Más
Egyéb adatforrás.
_Rang
A szakasz rangja.
value_type
A másolt elemek adattípusa.
associated_accelerator_view
Lekéri a második accelerator_view objektumot, amely paraméterként lesz átadva, amikor egy átmeneti konstruktort meghív az array objektum példányosítására.
__declspec(property(get= get_associated_accelerator_view)) Concurrency::accelerator_view associated_accelerator_view;
copy_to
Másolja a fájl tartalmát array egy másikba array.
void copy_to(
array<value_type, _Rank>& _Dest) const ;
void copy_to(
array_view<value_type, _Rank>& _Dest) const ;
Paraméterek
_Dest
A array_view objektum, amelybe másolni szeretne.
cpu_access_type
A tömbhöz engedélyezett cpu-access_type.
__declspec(property(get= get_cpu_access_type)) access_type cpu_access_type;
adat
Egy mutatót ad vissza a nyers adatokhoz.array
value_type* data() restrict(amp, cpu);
const value_type* data() const restrict(amp, cpu);
Visszaadott érték
Mutató a tömb nyers adataira.
szegmens
Lekéri az alakzatot meghatározó mértékobjektumotarray.
__declspec(property(get= get_extent)) Concurrency::extent<_Rank> extent;
get_accelerator_view
A accelerator_view objektumot adja vissza, amely az objektum lefoglalási array helyét jelöli. Ez a tulajdonság csak a processzoron érhető el.
Concurrency::accelerator_view get_accelerator_view() const;
Visszaadott érték
Az accelerator_view objektum lefoglalási helyét array jelképező objektum.
get_associated_accelerator_view
Lekéri a második accelerator_view objektumot, amely paraméterként lesz átadva, amikor egy átmeneti konstruktort meghív az array objektum példányosítására.
Concurrency::accelerator_view get_associated_accelerator_view() const ;
Visszaadott érték
A második accelerator_view objektum átadva az előkészítési konstruktornak.
get_cpu_access_type
A tömbhöz engedélyezett cpu-access_type adja vissza.
access_type get_cpu_access_type() const restrict(cpu);
Visszaadott érték
get_extent
A mérték objektumát arrayadja vissza.
Concurrency::extent<_Rank> get_extent() const restrict(amp,cpu);
Visszaadott érték
arrayA extent .
operator std::vector<value_type>
A copy(*this, vector) tömb implicit átalakítása std::vector objektummá.
operator std::vector<value_type>() const restrict(cpu);
Paraméterek
value_type
A vektor elemeinek adattípusa.
Visszaadott érték
Olyan típusú vector<T> objektum, amely a tömbben található adatok másolatát tartalmazza.
operátor()
A paraméterek által megadott elemértéket adja vissza.
value_type& operator() (const index<_Rank>& _Index) restrict(amp,cpu);
const value_type& operator() (const index<_Rank>& _Index) cons t restrict(amp,cpu);
value_type& operator() (int _I0, int _I1) restrict(amp,cpu);
const value_type& operator() (int _I0, int _I1) const restrict(amp,cpu) ;
value_type& operator() (int _I0, int _I1, int _I2) restrict(amp,cpu);
const value_type& operator() (int _I0, int _I1, int _I2) const restrict(amp,cpu);
typename details::_Projection_result_type<value_type,_Rank>::_Result_type operator()(int _I) restrict(amp,cpu);
typename details::_Projection_result_type<value_type,_Rank>::_Const_result_type operator()(int _I) const restrict(amp,cpu);
Paraméterek
_Index
Az elem helye.
_I0
A szakasz eredetének legfontosabb összetevője.
_I1
A szakasz eredetének következő legfontosabb összetevője.
_I2
A szakasz eredetének legkevésbé jelentős összetevője.
_Én
Az elem helye.
Visszaadott érték
A paraméterek által megadott elemérték.
operátor[]
A megadott indexben lévő elemet adja vissza.
value_type& operator[](const index<_Rank>& _Index) restrict(amp,cpu);
const value_type& operator[]
(const index<_Rank>& _Index) const restrict(amp,cpu);
typename details::_Projection_result_type<value_type,_Rank>::_Result_type operator[](int _i) restrict(amp,cpu);
typename details::_Projection_result_type<value_type,_Rank>::_Const_result_type operator[](int _i) const restrict(amp,cpu);
Paraméterek
_Index
Az index.
_Én
Az index.
Visszaadott érték
A megadott indexben lévő elem.
operátor=
Másolja a megadott array objektum tartalmát.
array& operator= (const array& _Other) restrict(cpu);
array& operator= (array&& _Other) restrict(cpu);
array& operator= (
const array_view<const value_type, _Rank>& _Src) restrict(cpu);
Paraméterek
_Más
A array másolandó objektum.
_Src
A array másolandó objektum.
Visszaadott érték
Hivatkozás erre a array objektumra.
rangsorol
Tárolja a rangot a array.
static const int rank = _Rank;
reinterpret_as
Újraértelmezi a tömböt egy egydimenziós array_view, amely opcionálisan más értéktípusú lehet, mint a forrástömb.
Szemantika
template <typename _Value_type2>
array_view<_Value_type2,1> reinterpret_as() restrict(amp,cpu);
template <typename _Value_type2>
array_view<const _Value_type2, 1> reinterpret_as() const restrict(amp,cpu);
Paraméterek
_Value_type2
A visszaadott adatok adattípusa.
Visszaadott érték
A tömbön alapuló array_view vagy const array_view objektum, amelynek elemtípusa T-ről ElementType-ra van átértelmezve, a rang pedig N-ről 1-re csökkent.
Megjegyzések
Néha célszerű úgy tekinteni egy többdimenziós tömböt, mintha lineáris, egydimenziós tömb lenne, esetleg más értéktípussal, mint a forrástömb. Ezt a módszert használhatja ennek eléréséhez. Figyelmeztet Egy tömbobjektum más értéktípussal történő újraértelmezése potenciálisan nem biztonságos művelet. Javasoljuk, hogy körültekintően használja ezt a funkciót.
Az alábbi kód egy példát mutat be.
struct RGB { float r; float g; float b; };
array<RGB,3> a = ...;
array_view<float,1> v = a.reinterpret_as<float>();
assert(v.extent == 3*a.extent);
szakasz
A megadott forrásnál lévő és adott kiterjedésű objektum alszakaszát array adja vissza.
array_view<value_type,_Rank> section(
const Concurrency::index<_Rank>& _Section_origin,
const Concurrency::extent<_Rank>& _Section_extent) restrict(amp,cpu);
array_view<const value_type,_Rank> section(
const Concurrency::index<_Rank>& _Section_origin,
const Concurrency::extent<_Rank>& _Section_extent) const restrict(amp,cpu);
array_view<value_type,_Rank> section(
const Concurrency::extent<_Rank>& _Ext) restrict(amp,cpu);
array_view<const value_type,_Rank> section(
const Concurrency::extent<_Rank>& _Ext) const restrict(amp,cpu);
array_view<value_type,_Rank> section(
const index<_Rank>& _Idx) restrict(amp,cpu);
array_view<const value_type,_Rank> section(
const index<_Rank>& _Idx) const restrict(amp,cpu);
array_view<value_type,1> section(
int _I0,
int _E0) restrict(amp,cpu);
array_view<const value_type,1> section(
int _I0,
int _E0) const restrict(amp,cpu);
array_view<value_type,2> section(
int _I0,
int _I1,
int _E0,
int _E1) restrict(amp,cpu);
array_view<const value_type,2> section(
int _I0,
int _I1,
int _E0,
int _E1) const restrict(amp,cpu);
array_view<value_type,3> section(
int _I0,
int _I1,
int _I2,
int _E0,
int _E1,
int _E2) restrict(amp,cpu);
array_view<const value_type,3> section(
int _I0,
int _I1,
int _I2,
int _E0,
int _E1,
int _E2) const restrict(amp,cpu);
Paraméterek
_E0
A szakasz terjedelmének legjelentősebb összetevője.
_E1
Ennek a szakasznak a következő-a-legfontosabb összetevője.
_E2
Ennek a szakasznak a legkisebb jelentős összetevője.
_Ext
A szakasz mértékét meghatározó mértékobjektum . A forrás 0.
_Idx
A forrás helyét meghatározó indexobjektum . Az alszakasz a mérték többi része.
_I0
A szakasz eredetének legfontosabb összetevője.
_I1
A szakasz eredetének következő legfontosabb összetevője.
_I2
A szakasz eredetének legkevésbé jelentős összetevője.
_Rang
A szakasz rangja.
_Section_extent
A szakasz mértékét meghatározó mértékobjektum .
_Section_origin
A forrás helyét meghatározó indexobjektum .
value_type
A másolt elemek adattípusa.
Visszaadott érték
A megadott forrásnál lévő és adott kiterjedésű objektum alszakaszát array adja vissza. Ha csak az index objektum van megadva, az alszakasz a társított rács összes olyan elemét tartalmazza, amely az objektum elemeinek index indexeinél nagyobb indexekkel rendelkezik.
view_as
Ezt a tömböt újraértelmezi egy másik rangú array_view .
template <int _New_rank>
array_view<value_type,_New_rank> view_as(
const Concurrency::extent<_New_rank>& _View_extent) restrict(amp,cpu);
template <int _New_rank>
array_view<const value_type,_New_rank> view_as(
const Concurrency::extent<_New_rank>& _View_extent) const restrict(amp,cpu);
Paraméterek
_New_rank
A paraméterként átadott objektum rangja extent .
_View_extent
Az új array_view objektum létrehozásához használt mérték.
value_type
Az eredeti array és a visszaadott array_view objektum elemeinek adattípusa.
Visszaadott érték
A array_view létrehozott objektum.