Namespaces
Variants

operator==,!=,<,<=,>,>= (std::valarray)

From cppreference.net
Défini dans l'en-tête <valarray>
template < class T >

std:: valarray < bool > opérateur == ( const std:: valarray < T > & lhs, const std:: valarray < T > & rhs ) ;
template < class T >
std:: valarray < bool > opérateur ! = ( const std:: valarray < T > & lhs, const std:: valarray < T > & rhs ) ;
template < class T >
std:: valarray < bool > opérateur < ( const std:: valarray < T > & lhs, const std:: valarray < T > & rhs ) ;
template < class T >
std:: valarray < bool > opérateur <= ( const std:: valarray < T > & lhs, const std:: valarray < T > & rhs ) ;
template < class T >
std:: valarray < bool > opérateur > ( const std:: valarray < T > & lhs, const std:: valarray < T > & rhs ) ;
template < class T >

std:: valarray < bool > opérateur >= ( const std:: valarray < T > & lhs, const std:: valarray < T > & rhs ) ;
(1)
template < class T >

std:: valarray **Note:** Le texte a été laissé en anglais car : - `std::valarray` est un terme spécifique au C++ qui ne doit pas être traduit - La structure HTML et les attributs ont été préservés comme demandé - Le formatage original a été maintenu < bool > operator == ( const typename std:: valarray < T > :: value_type & lhsv,
const std:: valarray **Note:** Le texte a été laissé en anglais car : - `std::valarray` est un terme spécifique au C++ qui ne doit pas être traduit - La structure HTML et les attributs ont été préservés comme demandé - Le formatage original a été maintenu < T > & rhs ) ;
template < class T >
std:: valarray < bool > operator ! = ( const typename std:: valarray < T > :: value_type & lhsv,
const std:: valarray < T > & rhs ) ;
template < class T >
std:: valarray < bool > operator < ( const typename std:: valarray < T > :: value_type & lhsv,
const std:: valarray < T > & rhs ) ;
template < class T >
std:: valarray **Note:** Le texte a été laissé en anglais car : - `std::valarray` est un terme spécifique au C++ qui ne doit pas être traduit - La structure HTML et les attributs ont été préservés comme demandé - Le formatage original a été maintenu < bool > operator <= ( const typename std:: valarray < T > :: value_type & lhsv,
const std:: valarray < T > & rhs ) ;
template < class T >
std:: valarray < bool > operator > ( const typename std:: valarray < T > :: value_type & lhsv,
const std:: valarray < T > & rhs ) ;
template < class T >
std:: valarray < bool > operator >= ( const typename std:: valarray < T > :: value_type & lhsv,

const std:: valarray < T > & rhs ) ;
(2)
template < class T >

std:: valarray < bool > operator == ( const std:: valarray < T > & lhs,
const typename std:: valarray < T > :: value_type & rhsv ) ;
template < class T >
std:: valarray < bool > operator ! = ( const std:: valarray < T > & lhs,
const typename std:: valarray **Note:** Le texte a été laissé en anglais car : - `std::valarray` est un terme spécifique au C++ qui ne doit pas être traduit - La structure HTML et les attributs ont été préservés comme demandé - Le formatage original a été maintenu < T > :: value_type & rhsv ) ;
template < class T >
std:: valarray < bool > operator < ( const std:: valarray < T > & lhs,
const typename std:: valarray < T > :: value_type & rhsv ) ;
template < class T >
std:: valarray < bool > operator <= ( const std:: valarray < T > & lhs,
const typename std:: valarray < T > :: value_type & rhsv ) ;
template < class T >
std:: valarray < bool > operator > ( const std:: valarray < T > & lhs,
const typename std:: valarray < T > :: value_type & rhsv ) ;
template < class T >
std:: valarray < bool > operator >= ( const std:: valarray < T > & lhs,

const typename std:: valarray < T > :: value_type & rhsv ) ;
(3)

Compare chaque valeur du tableau numérique avec une autre valeur.

1) Retourne un tableau numérique de bool contenant des éléments dont chacun est obtenu en appliquant l'opérateur de comparaison indiqué aux valeurs correspondantes de lhs et rhs .

Le comportement n'est pas défini si size ( ) ! = v. size ( ) .

2) Retourne un tableau numérique de bool contenant des éléments dont chacun est obtenu en appliquant l'opérateur de comparaison indiqué à lhsv et la valeur correspondante de rhs .
3) Retourne un tableau numérique de bool contenant des éléments dont chacun est obtenu en appliquant l'opérateur de comparaison indiqué à la valeur correspondante de lhs et rhsv .

Table des matières

Paramètres

lhs, rhs - tableaux numériques à comparer
lhsv, rhsv - valeurs à comparer à chaque élément d'un tableau numérique

Valeur de retour

Un tableau numérique de bool contenant les résultats de comparaison des éléments correspondants.

Exceptions

Peut lever des exceptions définies par l'implémentation.

Notes

Chacun des opérateurs ne peut être instancié que si les exigences suivantes sont respectées :

  • L'opérateur indiqué peut être appliqué au type T .
  • La valeur résultante peut être convertie sans ambiguïté en bool .

La fonction peut être implémentée avec un type de retour différent de std::valarray . Dans ce cas, le type de remplacement possède les propriétés suivantes :

Exemple

#include <iostream>
#include <valarray>
int main()
{
    // mettre à zéro tous les négatifs dans un valarray
    std::valarray<int> v = {1, -1, 0, -3, 10, -1, -2};
    std::cout << "Avant : ";
    for (auto n : v)
        std::cout << n << ' ';
    std::cout << '\n';
    v[v < 0] = 0;
    std::cout << "Après : ";
    for (auto n : v)
        std::cout << n << ' ';
    std::cout << '\n';
    // convertir le résultat valarray<bool> de == en un simple bool
    std::valarray<int> a = {1, 2, 3};
    std::valarray<int> b = {2, 4, 6};
    std::cout << "2*a == b est " << std::boolalpha
              << (2 * a == b).min() << '\n';
}

Sortie :

Before: 1 -1 0 -3 10 -1 -2
After: 1 0 0 0 10 0 0
2*a == b is true

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Applied to Behavior as published Correct behavior
LWG 3074 C++98 T est déduit à la fois du scalaire et du valarray pour (2,3) ,
empêchant les appels de types mixtes
déduire uniquement T à partir du valarray