Freigeben über


array_view-Klasse

Stellt eine N-dimensionale Ansicht über die Daten in einen anderen Container dar.

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

Parameter

  • _Value_type
    Der Datentyp der Elemente in der array_view Objekt.

  • _Rank
    Der Rang der array_view Objekt.

Mitglieder

Hh305260.collapse_all(de-de,VS.110).gifÖffentliche Konstruktoren

Name

Beschreibung

array_view::array_view-Konstruktor

Initialisiert eine neue Instanz der array_view-Klasse.Es ist kein Standardkonstruktor für array<T,N>.Alle Konstruktoren sind beschränkt auf nur die CPU ausgeführt und können nicht auf einem Direct3D-Ziel ausgeführt werden.

array_view::~array_view-Destruktor

Zerstört das array_view-Objekt.

Hh305260.collapse_all(de-de,VS.110).gifÖffentliche Methoden

Name

Beschreibung

array_view::copy_to-Methode

Kopiert den Inhalt der array_view Objekt mit dem angegebenen Ziel durch Aufrufen von copy(*this, dest).

array_view::data-Methode

Gibt einen Zeiger auf die Rohdaten der array_view.

array_view::discard_data-Methode

Verwirft die aktuellen Daten, die dieser Ansicht zugrunde liegt.

array_view::get_extent-Methode

Gibt das Objekt Umfang des Array_view-Objekts.

array_view::refresh-Methode

Benachrichtigt das Array_view-Objekt zurück, das seinen gebundene Speicher außerhalb der Array_view-Schnittstelle geändert wurde.Ein Aufruf dieser Methode rendert alle zwischengespeicherten Informationen veraltet.

array_view::reinterpret_as-Methode

Gibt ein eindimensionales Array, das alle Elemente in der array_view Objekt.

array_view::section-Methode

Gibt einen Unterabschnitt der array_view -Objekt, das der angegebenen Herkunft und, optional, hat die angegebene Erweiterung.

array_view::synchronize-Methode

Array_view-Objekt zurück an seinen Quelldaten vorgenommenen Änderungen wird synchronisiert.

array_view::synchronize_async-Methode

Asynchron synchronisiert Änderungen an der Array_view -Objekt zurück, dessen Quelldaten.

array_view::view_as-Methode

Erzeugt eine array_view Objekt, der einen anderen Rang, die mit diesem array_view Daten des Objekts.

Hh305260.collapse_all(de-de,VS.110).gifÖffentliche Operatoren

Name

Beschreibung

array_view::operator()-Operator

Gibt den Wert des Elements, das durch den oder die Parameter angegeben wird.

array_view::operator[]-Operator

Gibt das Element, das durch die Parameter angegeben ist.

array_view::operator=-Operator

Kopiert den Inhalt des angegebenen array_view in diesem Objekt.

Hh305260.collapse_all(de-de,VS.110).gifÖffentliche Konstanten

Name

Beschreibung

array_view::rank-Konstante

Speichert den Rang der array_view Objekt.

Hh305260.collapse_all(de-de,VS.110).gifDatenmember

Name

Beschreibung

array_view::extent-Datenmember

Ruft die extent -Objekt, das die Form des definiert die array_view Objekt.

Hinweise

Die array_view Klasse repräsentiert einen Einblick in die Daten, die in enthalten ist ein Array -Objekt oder einen Unterabschnitt einer array Objekt.

Sie greifen auf die array_view Objekt, an welcher Stelle die Quelldaten befindet (lokal) oder auf einen anderen Accelerator oder einer Domäne Kohärenz (Remote).Wenn Sie das Objekt von einem Remotestandort aus zugreifen, werden Ansichten kopiert und nach Bedarf zwischengespeichert.Außer für die Auswirkungen der automatischen Zwischenspeicherung array_view -Objekte haben eine ähnliche Leistungsprofil array Objekte.Es gibt eine Performanceeinbuße beim Datenzugriff durch Ansichten.

Es gibt drei remote-Verwendungsszenarien:

  • Eine Ansicht in einem System Speicherzeiger wird durch Übergeben einer Parallel_for_each aufrufen, um eine Schnellinfo und auf das Gaspedal abgerufen.

  • Eine Ansicht in ein Array befindet sich auf einer Zugriffstaste wird durch Übergeben einer parallel_for_each aufrufen, um ein anderes Accelerator und es erfolgt.

  • Eine Ansicht in ein Array befindet sich auf eine Schnellinfo erfolgt auf der CPU.

In einem dieser Szenarien, werden die referenzierten Ansichten von der Laufzeit an den Remotespeicherort kopiert und geändert durch Aufrufe der array_view Objekt, werden zurück auf den lokalen Speicherort kopiert.Die Common Language Runtime möglicherweise optimieren den Prozess des Kopierens der Änderungen zurück, möglicherweise nur die geänderten Elemente kopieren oder möglicherweise auch Teile unverändert kopiert.Überlappende array_view Objekte auf eine Datenquelle sind nicht unbedingt an einem Remotestandort referenzielle Integrität zu erhalten.

Sie müssen alle multithreaded-Zugriff auf die gleiche Datenquelle synchronisieren.

Die Common Language Runtime macht die folgenden Garantien hinsichtlich der Zwischenspeicherung von Daten in array_view Objekte:

  • Alle well-synchronized Zugriffe auf ein array Objekt und ein array_view Objekt auf im programmreihenfolge gehorchen einen seriellen passiert-vor der Beziehung.

  • Alle well-synchronized Zugriffe auf überlappende array_view Objekte auf der gleichen Accelerator auf einem einzigen array Objekt sind Alias durch den array Objekt.Insgesamt herbeiführen auftritt-vor der Beziehung, die programmreihenfolge beachtet werden.Es erfolgt keine Zwischenspeicherung.Wenn die array_view Objekte auf verschiedene Schnellinfos ausgeführt werden, die Reihenfolge der Zugriff ist nicht definiert, eine Race-Bedingung zu erstellen.

Beim Erstellen einer array_view Objekt mithilfe eines Zeigers im Systemspeicher, müssen Sie die Ansicht array_view Objekt nur durch die array_view Zeiger.Alternativ müssen Sie refresh()eines der array_view Objekte, die mit dem Mauszeiger System verknüpft sind, wenn der zugrunde liegenden systemeigene Speicher direkt, statt durch geändert wird die array_view Objekt.In beiden Fällen benachrichtigt die array_view -Objekt, dass der zugrunde liegenden systemeigene Speicher geändert wird und alle Kopien, die sich auf eine Schnellinfo veraltet sind.Wenn Sie diese Richtlinien befolgen, sind die Pointer-basierte Ansichten bereitgestellt, um Ansichten von Daten Parallel Arrays identisch.

Vererbungshierarchie

_Array_view_shape

_Array_view_base

array_view

Anforderungen

Header: amp.h

Namespace: Concurrency

Siehe auch

Referenz

Concurrency-Namespace (C++ AMP)