Namespaces
Variants

std:: valarray

From cppreference.net
Definiert im Header <valarray>
template < class T >
class valarray ;

std::valarray ist die Klasse zur Darstellung und Manipulation von Werte-Arrays. Sie unterstützt elementweise mathematische Operationen und verschiedene Formen von generalisierten Subskript-Operatoren, Slicing und indirektem Zugriff.

Inhaltsverzeichnis

Hinweise

std::valarray und Hilfsklassen sind so definiert, dass sie frei von bestimmten Formen von Aliasing sind, wodurch Operationen auf diesen Klassen ähnlich optimiert werden können wie durch das Schlüsselwort restrict in der Programmiersprache C. Zusätzlich ist es Funktionen und Operatoren, die valarray -Argumente entgegennehmen, erlaubt, Proxy-Objekte zurückzugeben, um dem Compiler zu ermöglichen, einen Ausdruck wie v1 = a * v2 + v3 ; als einzelne Schleife zu optimieren, die v1 [ i ] = a * v2 [ i ] + v3 [ i ] ; ausführt, wodurch temporäre Objekte oder mehrfache Durchläufe vermieden werden. Allerdings machen Expression Templates die gleiche Optimierungstechnik für jeden C++-Container verfügbar, und die Mehrheit der numerischen Bibliotheken bevorzugt Expression Templates gegenüber valarrays aufgrund ihrer Flexibilität. Einige Implementierungen der C++-Standardbibliothek verwenden Expression Templates, um effiziente Operationen auf std::valarray zu implementieren (z.B. GNU libstdc++ und LLVM libc++). Nur selten werden valarrays weiter optimiert, wie z.B. in den Intel Integrated Performance Primitives .

Template-Parameter

T - der Typ der Elemente. Der Typ muss die NumericType Anforderungen erfüllen

Mitgliedertypen

Mitgliedtyp Definition
value_type T

Memberfunktionen

Konstruiert ein neues numerisches Array
(öffentliche Elementfunktion)
Zerstört das numerische Array
(öffentliche Elementfunktion)
Weist die Inhalte zu
(öffentliche Elementfunktion)
Holt/setzt Valarray-Element, Slice oder Maske
(öffentliche Elementfunktion)
Wendet einen unären arithmetischen Operator auf jedes Element des Valarrays an
(öffentliche Elementfunktion)
Wendet einen zusammengesetzten Zuweisungsoperator auf jedes Element des Valarrays an
(öffentliche Elementfunktion)
Tauscht mit einem anderen Valarray
(öffentliche Elementfunktion)
Gibt die Größe des Valarrays zurück
(öffentliche Elementfunktion)
Ändert die Größe des Valarrays
(öffentliche Elementfunktion)
Berechnet die Summe aller Elemente
(öffentliche Elementfunktion)
Gibt das kleinste Element zurück
(öffentliche Elementfunktion)
Gibt das größte Element zurück
(öffentliche Elementfunktion)
Nullauffüllende Verschiebung der Elemente des Valarrays
(öffentliche Elementfunktion)
Zirkuläre Verschiebung der Elemente des Valarrays
(öffentliche Elementfunktion)
Wendet eine Funktion auf jedes Element eines Valarrays an
(öffentliche Elementfunktion)

Nicht-Member-Funktionen

spezialisiert den std::swap Algorithmus
(Funktions-Template)
überlädt std::begin
(Funktionsschablone)
spezialisiert std::end
(Funktionsschablone)
wendet binäre Operatoren auf jedes Element von zwei valarrays oder einem valarray und einem Wert an
(Funktionsschablone)
vergleicht zwei valarrays oder ein valarray mit einem Wert
(Funktions-Template)
wendet die Funktion abs auf jedes Element des valarray an
(Funktions-Template)
Exponentialfunktionen
wendet die Funktion std::exp auf jedes Element des valarray an
(Funktions-Template)
wendet die Funktion std::log auf jedes Element des valarray an
(Funktions-Template)
wendet die Funktion std::log10 auf jedes Element des valarray an
(Funktions-Template)
Potenzfunktionen
wendet die Funktion std::pow auf zwei Valarrays oder ein Valarray und einen Wert an
(Funktions-Template)
wendet die Funktion std::sqrt auf jedes Element des valarray an
(Funktions-Template)
Trigonometrische Funktionen
wendet die Funktion std::sin auf jedes Element des valarray an
(Funktions-Template)
wendet die Funktion std::cos auf jedes Element des valarray an
(Funktions-Template)
wendet die Funktion std::tan auf jedes Element des valarray an
(Funktions-Template)
wendet die Funktion std::asin auf jedes Element des valarray an
(Funktions-Template)
wendet die Funktion std::acos auf jedes Element des valarray an
(Funktions-Template)
wendet die Funktion std::atan auf jedes Element des valarray an
(Funktions-Template)
wendet die Funktion std::atan2 auf ein valarray und einen Wert an
(Funktions-Template)
Hyperbelfunktionen
wendet die Funktion std::sinh auf jedes Element des valarray an
(Funktions-Template)
wendet die Funktion std::cosh auf jedes Element des valarray an
(Funktions-Template)
wendet die Funktion std::tanh auf jedes Element des valarray an
(Funktions-Template)

Hilfsklassen

BLAS-ähnlicher Ausschnitt eines valarray: Startindex, Länge, Schrittweite
(Klasse)
Proxy für eine Teilmenge eines valarray nach Anwendung eines slice
(Klassentemplate)
Generalisierter Ausschnitt eines valarray: Startindex, Menge von Längen, Menge von Schrittweiten
(Klasse)
Proxy für eine Teilmenge eines valarray nach Anwendung eines gslice
(Klassentemplate)
Proxy für eine Teilmenge eines valarray nach Anwendung einer booleschen Maske operator[]
(Klassentemplate)
Proxy für eine Teilmenge eines valarray nach Anwendung eines indirekten operator[]
(Klassentemplate)

Deduction guides (seit C++17)

Siehe auch

Bequeme Alias-Vorlage für basic_simd , die ihre Breite angeben kann
(Alias-Vorlage)
Bequeme Alias-Vorlage für basic_simd_mask , die ihre Breite angeben kann
(Alias-Vorlage)
(parallelism TS v2)
Datenparalleler Vektortyp
(Klassenvorlage)
(parallelism TS v2)
Datenparalleler Typ mit dem Elementtyp bool
(Klassenvorlage)