Namensräume
Varianten
Aktionen

std::valarray

Von cppreference.com
< cpp‎ | numeric
 
 
 
 
Definiert in der Header-Datei <valarray>
template< class T >
class valarray;

std::valarray ist die Klasse zur Darstellung und Bearbeitung von Wertarrays. Sie unterstützt elementweise mathematische Operationen und verschiedene Formen von generalisierten Subskriptionsoperatoren, Slicing und indirektem Zugriff.

Inhalt

[edit] Anmerkungen

std::valarray und Hilfsklassen sind so konzipiert, dass sie frei von bestimmten Formen von Aliasing sind, was es ermöglicht, Operationen auf diesen Klassen ähnlich wie mit dem Schlüsselwort restrict in der C-Programmiersprache zu optimieren. Darüber hinaus dürfen Funktionen und Operatoren, die valarray-Argumente entgegennehmen, Proxy-Objekte zurückgeben, um es dem Compiler zu ermöglichen, einen Ausdruck wie v1 = a * v2 + v3; als eine einzige Schleife zu optimieren, die v1[i] = a * v2[i] + v3[i]; ausführt, wodurch temporäre Objekte oder mehrere Durchläufe vermieden werden. Expression Templates bieten jedoch die gleiche Optimierungstechnik für jeden C++-Container, und die Mehrheit der numerischen Bibliotheken bevorzugt Expression Templates gegenüber Valarrays wegen ihrer Flexibilität. Einige Implementierungen der C++-Standardbibliothek verwenden Expression Templates zur Implementierung effizienter Operationen auf std::valarray (z. B. GNU libstdc++ und LLVM libc++). Nur selten werden Valarrays weiter optimiert, wie z. B. in Intel Integrated Performance Primitives.

[edit] Template-Parameter

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

[edit] Elementtypen

Mitgliedertyp Definition
value_type T

[edit] Memberfunktionen

erstellt ein neues numerisches Array
(public member function) [edit]
zerstört das numerische Array
(public member function) [edit]
weist den Inhalt zu
(public member function) [edit]
liest/schreibt Array-Element, Slice oder Maske
(public member function) [edit]
wendet einen unären arithmetischen Operator auf jedes Element des Valarrays an
(public member function) [edit]
wendet einen zusammengesetzten Zuweisungsoperator auf jedes Element des Valarrays an
(public member function) [edit]
tauscht mit einem anderen valarray
(public member function) [edit]
gibt die Größe eines valarray zurück
(public member function) [edit]
ändert die Größe eines valarray
(public member function) [edit]
berechnet die Summe aller Elemente
(public member function) [edit]
gibt das kleinste Element zurück
(public member function) [edit]
gibt das größte Element zurück
(public member function) [edit]
verschiebt die Elemente des Valarrays mit Nullauffüllung
(public member function) [edit]
zirkuläre Verschiebung der Elemente des Valarrays
(public member function) [edit]
wendet eine Funktion auf jedes Element eines Valarrays an
(public member function) [edit]

[edit] Nicht-Member-Funktionen

spezialisiert den Algorithmus std::swap
(function template) [edit]
überlädt std::begin
(function template) [edit]
spezialisiert std::end
(function template) [edit]
wendet binäre Operatoren auf jedes Element zweier Valarrays oder eines Valarrays und eines Werts an
(function template) [edit]
vergleicht zwei Valarrays oder ein Valarray mit einem Wert
(function template) [edit]
wendet die Funktion abs auf jedes Element des Valarrays an
(function template) [edit]
Exponentialfunktionen
wendet die Funktion std::exp auf jedes Element des Valarrays an
(function template) [edit]
wendet die Funktion std::log auf jedes Element des Valarrays an
(function template) [edit]
wendet die Funktion std::log10 auf jedes Element des Valarrays an
(function template) [edit]
Potenzfunktionen
wendet die Funktion std::pow auf zwei Valarrays oder ein Valarray und einen Wert an
(function template) [edit]
wendet die Funktion std::sqrt auf jedes Element des Valarrays an
(function template) [edit]
Trigonometrische Funktionen
wendet die Funktion std::sin auf jedes Element des Valarrays an
(function template) [edit]
wendet die Funktion std::cos auf jedes Element des Valarrays an
(function template) [edit]
wendet die Funktion std::tan auf jedes Element des Valarrays an
(function template) [edit]
wendet die Funktion std::asin auf jedes Element des Valarrays an
(function template) [edit]
wendet die Funktion std::acos auf jedes Element des Valarrays an
(function template) [edit]
wendet die Funktion std::atan auf jedes Element des Valarrays an
(function template) [edit]
wendet die Funktion std::atan2 auf ein Valarray und einen Wert an
(function template) [edit]
Hyperbolische Funktionen
wendet die Funktion std::sinh auf jedes Element des Valarrays an
(function template) [edit]
wendet die Funktion std::cosh auf jedes Element des Valarrays an
(function template) [edit]
wendet die Funktion std::tanh auf jedes Element des Valarrays an
(function template) [edit]

[edit] Hilfsklassen

BLAS-ähnlicher Slice eines Valarrays: Startindex, Länge, Schrittweite
(class) [edit]
Proxy für eine Teilmenge eines Valarrays nach Anwendung eines Slices
(class template) [edit]
generalisierter Slice eines Valarrays: Startindex, Satz von Längen, Satz von Schrittweiten
(class) [edit]
Proxy für eine Teilmenge eines Valarrays nach Anwendung eines gslice
(class template) [edit]
Proxy für eine Teilmenge eines Valarrays nach Anwendung einer booleschen Maske operator[]
(class template) [edit]
Proxy für eine Teilmenge eines Valarrays nach Anwendung eines indirekten operator[]
(class template) [edit]

[edit] Deduktionsanleitungen(seit C++17)

[edit] Siehe auch

(C++26)
Bequeme Alias-Vorlage für basic_simd, die ihre Breite angeben kann
(Alias-Vorlage)[edit]
(C++26)
Bequeme Alias-Vorlage für basic_simd_mask, die ihre Breite angeben kann
(Alias-Vorlage)[edit]
(Parallelismus TS v2)
Datenparalleler Vektortyp
(class template) [edit]
(Parallelismus TS v2)
Datenparalleler Typ mit dem Elementtyp bool
(class template) [edit]