operator==,!=,<,<=,>,>= (std::valarray)
|
Definiert in Header
<valarray>
|
||
|
template
<
class
T
>
**Anmerkung:** Da es sich bei dem Inhalt um C++-Code handelt und gemäß den Anweisungen keine HTML-Tags, Attribute oder Code-Inhalte übersetzt werden sollen, bleibt der gesamte Inhalt unverändert. Die C++-Operatoren und Schlüsselwörter wurden nicht übersetzt, um die technische Korrektheit zu gewährleisten.
std::
valarray
<
bool
>
operator
==
(
const
std::
valarray
<
T
>
&
lhs,
const
std::
valarray
<
T
>
&
rhs
)
;
|
(1) | |
|
template
<
class
T
>
std::
valarray
<
bool
>
operator
==
(
const
typename
std::
valarray
<
T
>
::
value_type
&
lhsv,
|
(2) | |
|
template
<
class
T
>
std::
valarray
<
bool
>
operator
==
(
const
std::
valarray
<
T
>
&
lhs,
|
(3) | |
Vergleicht jeden Wert innerhalb des numerischen Arrays mit einem anderen Wert.
Das Verhalten ist undefiniert, falls size ( ) ! = v. size ( ) .
Inhaltsverzeichnis |
Parameter
| lhs, rhs | - | numerische Arrays zum Vergleichen |
| lhsv, rhsv | - | Werte zum Vergleichen mit jedem Element innerhalb eines numerischen Arrays |
Rückgabewert
Ein numerisches Array von bool das Vergleichsergebnisse der entsprechenden Elemente enthält.
Exceptions
Kann implementierungsdefinierte Ausnahmen auslösen.
Hinweise
Jeder der Operatoren kann nur instanziiert werden, wenn die folgenden Anforderungen erfüllt sind:
-
-
Der angegebene Operator kann auf den Typ
Tangewendet werden. - Der Ergebniswert kann eindeutig in bool konvertiert werden.
-
Der angegebene Operator kann auf den Typ
Die Funktion kann mit einem Rückgabetyp implementiert werden, der sich von std::valarray unterscheidet. In diesem Fall hat der Ersatztyp die folgenden Eigenschaften:
-
- Alle const Memberfunktionen von std::valarray werden bereitgestellt.
- std::valarray , std::slice_array , std::gslice_array , std::mask_array und std::indirect_array können aus dem Ersatztyp konstruiert werden.
- Für jede Funktion, die ein const std:: valarray < T > & außer begin() und end() (seit C++11) akzeptiert, müssen identische Funktionen hinzugefügt werden, die die Ersatztypen akzeptieren;
- Für jede Funktion, die zwei const std:: valarray < T > & Argumente akzeptiert, müssen identische Funktionen hinzugefügt werden, die jede Kombination von const std:: valarray < T > & und Ersatztypen akzeptieren.
- Der Rückgabetyp fügt nicht mehr als zwei Ebenen von Template-Verschachtelung über dem am tiefsten verschachtelten Argumenttyp hinzu.
Beispiel
#include <iostream> #include <valarray> int main() { // alle Negativen in einem valarray auf Null setzen std::valarray<int> v = {1, -1, 0, -3, 10, -1, -2}; std::cout << "Vorher: "; for (auto n : v) std::cout << n << ' '; std::cout << '\n'; v[v < 0] = 0; std::cout << "Nachher: "; for (auto n : v) std::cout << n << ' '; std::cout << '\n'; // das valarray<bool>-Ergebnis von == in einen einzelnen bool konvertieren std::valarray<int> a = {1, 2, 3}; std::valarray<int> b = {2, 4, 6}; std::cout << "2*a == b ist " << std::boolalpha << (2 * a == b).min() << '\n'; }
Ausgabe:
Vorher: 1 -1 0 -3 10 -1 -2 Nachher: 1 0 0 0 10 0 0 2*a == b ist true
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
| LWG 3074 | C++98 |
T
wird sowohl vom Skalar als auch vom
valarray
für
(2,3)
abgeleitet,
was gemischte Typaufrufe verhindert |
leite
T
nur vom
valarray
ab
|