Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
érték_típus (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 módszerek
| Név | Leírás |
|---|---|
| másolás_ide | Másolja a tömb tartalmát egy másik tömbbe. |
| adat | A tömb nyers adataira mutató mutatót ad vissza. |
| gyorsító nézet lekérése | 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 | Visszaadja a access_type értékét a tömbnek. 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 kezdőpontnál található objektum alszakaszát adja vissza array, amely adott kiterjedésű, és opcionálisan rendelkezik ezzel a kiterjedéssel. |
| view_as | Az |
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. |
| operator[] | 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. |
| kapcsolódó_gyorsító_nézet | 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ó kiterjedést. |
Megjegyzések
A típus array<T,N> egy sűrű és szabályos (nem szaggatott) N-dimenziós tömböt képvisel, amely egy adott helyen található, például egy gyorsító 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 és a típus részévé van meghatározva, a tömb kiterjedését a futásidő határozza meg, amit az extent<N> osztály használatával fejez 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ó, amely a gazda CPU-hoz tartozó memóriát tartalmazza, és más tömbökbe vagy 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
Header: amp.h
névtér: konkurencia
~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 felületen.
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
Az accelerator_view meghatározza a tömb elsődleges célhelyét.
_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, és a CPU meghatározást a futtatókörnyezetre access_type 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 második legjelentősebb összetevője.
_E2
Ennek a szakasznak a legkisebb jelentős összetevője.
_InputIterator
A bemeneti iterátor típusa.
_Src
A másolás elleni tiltakozás.
_Src_first
Egy kezdeti iterátor a forrástárolóban.
_Src_last
Záró iterátor a forrástárolóba.
_Más
Egyéb adatforrás.
_Rang
A szakasz rangja.
érték_típus (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
Lekéri a tömbhöz engedélyezett CPU-hozzáférési típus.
__declspec(property(get= get_cpu_access_type)) access_type cpu_access_type;
adat
Egy mutatót ad vissza a array nyers adataihoz.
value_type* data() restrict(amp, cpu);
const value_type* data() const restrict(amp, cpu);
Visszaadott érték
Mutató a tömb nyers adataira.
szegmens
Megszerzi az alakzatot meghatározó kiterjedési objektumotarray.
__declspec(property(get= get_extent)) Concurrency::extent<_Rank> extent;
get_gyorsító_nézet
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 objektumot jelképező helyet az a array objektum képviseli, ahol az lefoglalásra került.
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
Az a CPU hozzáférési típus, amely engedélyezett ehhez a tömbhöz, visszaadásra kerül.
access_type get_cpu_access_type() const restrict(cpu);
Visszaadott érték
get_extent
A kiterjedés objektumát arrayadja vissza.
Concurrency::extent<_Rank> get_extent() const restrict(amp,cpu);
Visszaadott érték
A extent objektuma array.
operator std::vector<value_type>
Alkalmazza a copy(*this, vector)-t a tömb implicit std::vector objektummá alakításához.
operator std::vector<value_type>() const restrict(cpu);
Paraméterek
érték_típus (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 az objektum, amelyről másolunk.
_Src
A array az objektum, amelyről másolunk.
Visszaadott érték
Hivatkozás erre a array objektumra.
rangsorol
A(z) array rangját tárolja.
static const int rank = _Rank;
reinterpret_as
Újraértelmezi a tömböt egy egydimenziós array_view-en keresztül, amely opcionálisan más értéktípussal rendelkezhet, 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 kezdőpontnál található objektum alszakaszát adja vissza array, amely adott kiterjedésű, és opcionálisan rendelkezik ezzel a kiterjedéssel.
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 második legjelentősebb ö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 kiindulópont 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 .
érték_típus (value_type)
A másolt elemek adattípusa.
Visszaadott érték
A megadott kezdőpontnál található objektum alszakaszát adja vissza array, amely adott kiterjedésű, és opcionálisan rendelkezik ezzel a kiterjedéssel. 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
Az adott tömböt egy másik rangú array_view-ként értelmezi újra.
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.
érték_típus (value_type)
Az eredeti array és a visszaadott array_view objektum elemeinek adattípusa.
Visszaadott érték
A array_view létrehozott objektum.