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
Öffentliche Konstruktoren
Name |
Beschreibung |
---|---|
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. |
|
Zerstört das array_view-Objekt. |
Öffentliche Methoden
Name |
Beschreibung |
---|---|
Kopiert den Inhalt der array_view Objekt mit dem angegebenen Ziel durch Aufrufen von copy(*this, dest). |
|
Gibt einen Zeiger auf die Rohdaten der array_view. |
|
Verwirft die aktuellen Daten, die dieser Ansicht zugrunde liegt. |
|
Gibt das Objekt Umfang des Array_view-Objekts. |
|
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. |
|
Gibt ein eindimensionales Array, das alle Elemente in der array_view Objekt. |
|
Gibt einen Unterabschnitt der array_view -Objekt, das der angegebenen Herkunft und, optional, hat die angegebene Erweiterung. |
|
Array_view-Objekt zurück an seinen Quelldaten vorgenommenen Änderungen wird synchronisiert. |
|
Asynchron synchronisiert Änderungen an der Array_view -Objekt zurück, dessen Quelldaten. |
|
Erzeugt eine array_view Objekt, der einen anderen Rang, die mit diesem array_view Daten des Objekts. |
Öffentliche Operatoren
Name |
Beschreibung |
---|---|
Gibt den Wert des Elements, das durch den oder die Parameter angegeben wird. |
|
Gibt das Element, das durch die Parameter angegeben ist. |
|
Kopiert den Inhalt des angegebenen array_view in diesem Objekt. |
Öffentliche Konstanten
Name |
Beschreibung |
---|---|
Speichert den Rang der array_view Objekt. |
Datenmember
Name |
Beschreibung |
---|---|
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