Partager via


array_view, classe

Représente une vue dimensionnelle N sur les données conservées dans un autre conteneur.

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)>;

Paramètres

  • _Value_type
    Le type de données des éléments de l'objet array_view .

  • _Rank
    Le rang de l'objet array_view.

Membres

Hh305260.collapse_all(fr-fr,VS.110).gifConstructeurs publics

Name

Description

array_view::array_view, constructeur

Initialise une nouvelle instance de la classe array_view.Il n'existe pas de constructeur public par défaut pour array<T,N>.Tous les constructeurs sont limités à l'exécution sur le processeur seul et ne peuvent pas être exécutés sur une cible Direct3D.

array_view::~array_view, destructeur

Détruit l'objet array_view.

Hh305260.collapse_all(fr-fr,VS.110).gifMéthodes publiques

Name

Description

array_view::copy_to, méthode

Copie le contenu de l'objet array_view vers la destination spécifiée en appelant copy(*this, dest).

array_view::data, méthode

Retourne un pointeur vers les données brutes du array_view.

array_view::discard_data, méthode

Ignore les données actuelles sous-jacentes de cette vue.

array_view::get_extent, méthode

Retourne l'objet d'étendue de l'objet array_view.

array_view::refresh, méthode

Informe l'objet array_view que sa mémoire liée a été modifiée en dehors de l'interface array_view.Un appel à cette méthode affiche toutes les informations mises en cache périmées.

array_view::reinterpret_as, méthode

Retourne un tableau unidimensionnel qui contient tous les éléments de l'objet array_view.

array_view::section, méthode

Retourne une sous-section de l'objet array_view qui est à l'origine spécifiée et, éventuellement, qui a l'extent spécifiée.

array_view::synchronize, méthode

Synchronise les modifications apportées à l'objet array_view vers ses données sources.

array_view::synchronize_async, méthode

Synchronise de façon asynchrone toutes les modifications apportées à l'objet array_view avec ses données sources.

array_view::view_as, méthode

Génère un objet array_view d'un rang différent utilisant les données de cet objet array_view.

Hh305260.collapse_all(fr-fr,VS.110).gifOpérateurs publics

Name

Description

array_view::operator(), opérateur

Retourne la valeur de l'élément spécifié par le paramètre ou les paramètres.

array_view::operator[], opérateur

Retourne l'élément spécifié par les paramètres.

array_view::operator=, opérateur

Copie le contenu de l'objet array_view spécifié dans cet objet.

Hh305260.collapse_all(fr-fr,VS.110).gifConstantes publiques

Name

Description

array_view::rank, constante

Stocke le rang de l'objet array_view.

Hh305260.collapse_all(fr-fr,VS.110).gifMembres de données

Name

Description

array_view::extent, données membres

Obtient l'objet extent qui définit la forme de l'objet array_view .

Remarques

La classe array_view représente une vue dans les données contenues dans un objet array ou une sous-section d'un objet array.

Vous pouvez accéder à l'objet array_view où les données sources sont situées (localement) ou sur un accélérateur différent ou un domaine de sécurité (à distance).Lorsque vous accédez à l'objet à distance, les vues sont copiées et mises en cache selon vos besoins.À l'exception des effets de mise en cache automatique, les objets array_view ont un profil de performances semblables à celui des objets array.Il existe une légère baisse de performances lorsque vous accédez aux données via les vues.

Il existe trois scénarios d'usage distants :

  • Une vue vers un pointeur de mémoire système est passée au moyen d'un appel à parallel_for_each sur un accélérateur et accédé dans l'accélérateur.

  • Une vue sur un tableau situé sur un accélérateur est passée au moyen d'un appel à parallel_for_each sur un autre accélérateur et est accessible à partir de celui-ci.

  • Une vue sur un tableau située sur un accélérateur est accédée sur l'UC.

Dans n'importe lequel de ces scénarios, les vues référencées sont copiées par le runtime à l'emplacement distant et, si modifiées par les appels à l'objet array_view , sont copiées vers l'emplacement local.Le runtime peut optimiser le processus de copie de modifications, peut copier uniquement les éléments modifiés, ou peut copier des parties inchangées également.Faire chevaucher des objets array_view sur une source de données ne garanti pas de maintenir l'intégrité référentielle dans un emplacement distant.

Vous devez synchroniser tout accès multithread à la même source de données.

Le runtime fait les garanties suivantes concernant la mise en cache des données dans les objets array_view :

  • Tous les accès bien synchronisés à un objet array et un objet array_view dessus dans la commande de programme obéissent à une relation de série d'avant évènement.

  • Tous les accès bien synchronisés à un objet array_view chevauchant sur le même accélérateur sur un objet unique d'alias array via l'objet array.Celles-ci induisent une relation d'évènement-avant totale à laquelle obéit la commande de programme.Il n'existe aucune mise en cache.Si les objets array_view s'exécutent sur des accélérateurs différents, l'ordre d'accès n'est pas défini, créant une condition de concurrence critique.

Lorsque vous créez un objet array_view à l'aide d'un pointeur dans la mémoire système, vous devez modifier l'objet de vue array_view uniquement via le pointeur array_view.Sinon, vous devez appeler refresh()sur l'un des objets array_view joints au pointeur système, si la mémoire native sous-jacente est modifiée directement, plutôt que par l'objet array_view.Chacune des actions informe l'objet array_view que la mémoire native sous-jacente est modifiée et que toutes les copies qui se trouvent sur un accélérateur sont obsolètes.Si vous suivez ces indications, les vues basées sur un pointeur sont identiques à celles fournies aux vues des tableaux de données parallèles.

Hiérarchie d'héritage

_Array_view_shape

_Array_view_base

array_view

Configuration requise

En-tête : amp.h

Espace de noms d'accès : Concurrency

Voir aussi

Référence

Concurrency, espace de noms (C++ AMP)