<valarray>
, opérateurs
operator!=
Teste si les éléments correspondants de deux objets de taille valarray
égale sont inégaux ou si tous les éléments d’un valarray
objet sont inégaux à une valeur spécifiée.
template <class Type>
valarray<bool>
operator!=(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<bool>
operator!=(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<bool>
operator!=(
const Type& left,
const valarray<Type>& right);
Paramètres
left
Objet valarray
dont les éléments doivent être testés pour l’inégalité par rapport à un autre valarray
objet, ou une valeur de type d’élément à comparer à chaque élément d’un valarray
.
right
Objet valarray
dont les éléments doivent être testés pour l’inégalité par rapport à un autre valarray
objet, ou une valeur de type d’élément à comparer à chaque élément d’un valarray
.
Valeur retournée
Valeurs valarray
booléennes, chacune d’elles étant :
true
si les éléments correspondants sont inégaux.false
si les éléments correspondants sont égaux.
Notes
Le premier opérateur de modèle retourne un objet de classe valarray<bool>
, chacun des éléments I
dont il s’agit left[I] != right[I]
.
Le deuxième opérateur de modèle stocke left[I] != right
dans l’élément I
.
Le troisième opérateur de modèle stocke left != right[I]
dans l’élément I
.
Exemple
// valarray_op_ne.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 10 );
valarray<bool> vaNE ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL [ i ] = -i;
for ( i = 1 ; i < 10 ; i += 2 )
vaL [ i ] = i;
for ( i = 0 ; i < 10 ; i++ )
vaR [ i ] = i;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL != vaR );
cout << "The element-by-element result of "
<< "the not equal comparison test is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 0 1 -2 3 -4 5 -6 7 -8 9 ).
The initial Right valarray is: ( 0 1 2 3 4 5 6 7 8 9 ).
The element-by-element result of the not equal comparison test is the
valarray: ( 0 0 1 0 1 0 1 0 1 0 ).
operator%
Obtient le reste de la division des éléments correspondants de deux objets de taille valarray
égale, ou de la division d’une valarray
valeur spécifiée ou de la division d’une valeur spécifiée par un valarray
.
template <class Type>
valarray<Type>
operator%(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<Type>
operator%(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<Type>
operator%(
const Type& left,
const valarray<Type>& right);
Paramètres
left
Valeur ou valarray
qui sert de dividende dans lequel une autre valeur ou valarray
doit être divisée.
right
Valeur ou valarray
qui sert de diviseur et qui divise une autre valeur ou valarray
.
Valeur retournée
Dont valarray
les éléments sont les restes des éléments divisés left
par right
.
Exemple
// valarray_op_rem.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 6 ), vaR ( 6 );
valarray<int> vaREM ( 6 );
for ( i = 0 ; i < 6 ; i += 2 )
vaL [ i ] = 53;
for ( i = 1 ; i < 6 ; i += 2 )
vaL [ i ] = -67;
for ( i = 0 ; i < 6 ; i++ )
vaR [ i ] = 3*i+1;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 6 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 6 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaREM = ( vaL % vaR );
cout << "The remainders from the element-by-element "
<< "division is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 6 ; i++ )
cout << vaREM [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 53 -67 53 -67 53 -67 ).
The initial Right valarray is: ( 1 4 7 10 13 16 ).
The remainders from the element-by-element division is the
valarray: ( 0 -3 4 -7 1 -3 ).
operator&
Obtient l’AND au niveau du bit entre les éléments correspondants de deux objets de taille valarray
égale, ou entre une valeur et une valarray
valeur spécifiée du type d’élément.
template <class Type>
valarray<Type>
operator&(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<Type>
operator&(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<Type>
operator&(
const Type& left,
const valarray<Type>& right);
Paramètres
left
Premier des deux valarray
objets dont les éléments respectifs doivent être combinés avec l’and au niveau du bit, ou une valeur spécifiée du type d’élément à combiner par bit AND avec chaque élément d’un valarray
.
right
Deuxième des deux valarray
objets dont les éléments respectifs doivent être combinés avec le bit AND, ou une valeur spécifiée du type d’élément à combiner par bit AND avec chaque élément d’un valarray
.
Valeur de retour
Dont valarray
les éléments sont la combinaison élément-sage de l’opération AND au niveau du bit de left
et right
.
Notes
Une opération au niveau du bit peut uniquement être utilisée pour manipuler des bits dans et des char
types de données et des variantes, et non pas sur float
, , double
, long double
ou void
bool
d’autres types de données plus complexes.int
L’opérateur de bits AND a la même table de vérité que l’opérateur logique AND, mais il s’applique au type de données au niveau des bits individuels. S’applique operator&&
au niveau d’un élément, en comptant toutes les valeurs non nulles en tant que true
, et le résultat est une valarray
valeur booléenne. Le bit AND operator&
, en revanche, peut entraîner une valarray
valeur autre que 0 ou 1, en fonction du résultat de l’opération au niveau du bit.
Exemple
// valarray_op_bitand.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 10 );
valarray<int> vaBWA ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL [ i ] = 0;
for ( i = 1 ; i < 10 ; i += 2 )
vaL [ i ] = i+1;
for ( i = 0 ; i < 10 ; i++ )
vaR [ i ] = i;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaBWA = ( vaL & vaR );
cout << "The element-by-element result of "
<< "the bitwise operator & is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaBWA [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 0 2 0 4 0 6 0 8 0 10 ).
The initial Right valarray is: ( 0 1 2 3 4 5 6 7 8 9 ).
The element-by-element result of the bitwise operator & is the
valarray: ( 0 0 0 0 0 4 0 0 0 8 ).
operator&&
Obtient l’AND logique entre les éléments correspondants de deux objets de taille valarray
égale, ou entre une valeur et une valarray
valeur spécifiée du valarray
type d’élément.
template <class Type>
valarray<bool>
operator&&(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<bool>
operator&&(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<bool>
operator&&(
const Type& left,
const valarray<Type>& right);
Paramètres
left
Premier des deux valarray
objets dont les éléments respectifs doivent être combinés avec l’AND logique, ou une valeur spécifiée du type d’élément à combiner avec chaque élément d’un valarray
.
right
Deuxième des deux valarray
objets dont les éléments respectifs doivent être combinés avec l’and logique ou une valeur spécifiée du type d’élément à combiner avec chaque élément d’un valarray
.
Valeur retournée
Dont valarray
les éléments sont de type bool
et sont la combinaison à l’échelle de l’élément de l’opération AND logique de left
et right
.
Notes
L’AND operator&&
logique s’applique au niveau d’un élément, en comptant toutes les valeurs non nulles en tant que true
, et le résultat est une valarray
valeur booléenne. La version au niveau du bit de AND, operator&
en revanche, peut entraîner une valarray
valeur autre que 0 ou 1, en fonction du résultat de l’opération au niveau du bit.
Exemple
// valarray_op_logand.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 10 );
valarray<bool> vaLAA ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL [ i ] = 0;
for ( i = 1 ; i < 10 ; i += 2 )
vaL [ i ] = i-1;
for ( i = 0 ; i < 10 ; i++ )
vaR [ i ] = i;
cout << "The initial Left valarray is: ( ";
for (i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for (i = 0 ; i < 10 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaLAA = ( vaL && vaR );
cout << "The element-by-element result of "
<< "the logical AND operator&& is the\n"
<< "valarray: ( ";
for (i = 0 ; i < 10 ; i++ )
cout << vaLAA [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 0 0 0 2 0 4 0 6 0 8 ).
The initial Right valarray is: ( 0 1 2 3 4 5 6 7 8 9 ).
The element-by-element result of the logical AND operator&& is the
valarray: ( 0 0 0 1 0 1 0 1 0 1 ).
operator>
Teste si les éléments d’un valarray
sont supérieurs aux éléments d’une taille valarray
égale ou si tous les éléments d’un valarray
élément sont supérieurs ou inférieurs à une valeur spécifiée.
template <class Type>
valarray<bool>
operator>(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<bool>
operator>(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<bool>
operator>(
const Type& left,
const valarray<Type>& right);
Paramètres
left
Premier des deux valarray
objets dont les éléments doivent être comparés, ou une valeur spécifiée à comparer avec chaque élément d’un valarray
.
right
Deuxième des deux valarray
objets dont les éléments doivent être comparés, ou une valeur spécifiée à comparer avec chaque élément d’un valarray
.
Valeur retournée
Valeurs valarray
booléennes, chacune d’elles étant :
true
si l’élément ou laleft
valeur est supérieur à l’élément ou à la valeur correspondantright
.false
si l’élément ou laleft
valeur n’est pas supérieur à l’élément ou à la valeur correspondantright
.
Notes
Si le nombre d’éléments dans les deux valarray
objets n’est pas égal, le résultat n’est pas défini.
Exemple
// valarray_op_gt.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 10 );
valarray<bool> vaNE ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL [ i ] = -i;
for ( i = 1 ; i < 10 ; i += 2 )
vaL [ i ] = i;
for ( i = 0 ; i < 10 ; i++ )
vaR [ i ] = i - 1;
cout << "The initial Left valarray is: ( ";
for (i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL > vaR );
cout << "The element-by-element result of "
<< "the greater than comparison test is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 0 1 -2 3 -4 5 -6 7 -8 9 ).
The initial Right valarray is: ( -1 0 1 2 3 4 5 6 7 8 ).
The element-by-element result of the greater than comparison test is the
valarray: ( 1 1 0 1 0 1 0 1 0 1 ).
operator>=
Teste si les éléments d’un valarray
sont supérieurs ou égaux aux éléments d’une taille valarray
égale, ou si tous les éléments d’un valarray
élément sont supérieurs ou inférieurs ou inférieurs à une valeur spécifiée.
template <class Type>
valarray<bool>
operator>=(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<bool>
operator>=(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<bool>
operator>=(
const Type& left,
const valarray<Type>& right);
Paramètres
left
Premier des deux valarray
objets dont les éléments doivent être comparés, ou une valeur spécifiée à comparer avec chaque élément d’un valarray
.
right
Deuxième des deux valarray
objets dont les éléments doivent être comparés, ou une valeur spécifiée à comparer avec chaque élément d’un valarray
.
Valeur retournée
Valeurs valarray
booléennes, chacune d’elles étant :
true
si l’élément ou laleft
valeur est supérieur ou égal à l’élément ou à la valeur correspondantright
.false
si l’élément ou laleft
valeur est inférieur à l’élément ou à la valeur correspondantright
.
Notes
Si le nombre d’éléments dans deux valarray
objets n’est pas égal, le résultat n’est pas défini.
Exemple
// valarray_op_ge.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 10 );
valarray<bool> vaNE ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL [ i ] = -i;
for ( i = 1 ; i < 10 ; i += 2 )
vaL [ i ] = i;
for ( i = 0 ; i < 10 ; i++ )
vaR [ i ] = i - 1;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL >= vaR );
cout << "The element-by-element result of "
<< "the greater than or equal test is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 0 1 -2 3 -4 5 -6 7 -8 9 ).
The initial Right valarray is: ( -1 0 1 2 3 4 5 6 7 8 ).
The element-by-element result of the greater than or equal test is the
valarray: ( 1 1 0 1 0 1 0 1 0 1 ).
operator>>
Déplace à droite les bits pour chaque élément d’un valarray
nombre spécifié de positions, ou par une quantité d’élément spécifiée par une seconde valarray
.
template <class Type>
valarray<Type>
operator>>(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<Type>
operator>>(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<Type>
operator>>(
const Type& left,
const valarray<Type>& right);
Paramètres
left
Valeur à déplacer, ou dont les valarray
éléments doivent être décalés.
right
Valeur indiquant la quantité de décalage droit, ou dont valarray
les éléments indiquent la quantité d’élément de décalage droit.
Valeur retournée
Dont valarray
les éléments ont été décalés vers la droite par la quantité spécifiée.
Notes
Les signes des nombres signés sont préservés.
Exemple
// valarray_op_rs.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 8 ), vaR ( 8 );
valarray<int> vaNE ( 8 );
for ( i = 0 ; i < 8 ; i += 2 )
vaL [ i ] = 64;
for ( i = 1 ; i < 8 ; i += 2 )
vaL [ i ] = -64;
for ( i = 0 ; i < 8 ; i++ )
vaR [ i ] = i;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL >> vaR );
cout << "The element-by-element result of "
<< "the right shift is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 64 -64 64 -64 64 -64 64 -64 ).
The initial Right valarray is: ( 0 1 2 3 4 5 6 7 ).
The element-by-element result of the right shift is the
valarray: ( 64 -32 16 -8 4 -2 1 -1 ).
operator<
Teste si les éléments d’un valarray
sont inférieurs aux éléments d’une taille valarray
égale ou si tous les éléments d’un valarray
élément sont supérieurs ou inférieurs à une valeur spécifiée.
template <class Type>
valarray<bool>
operator<(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<bool>
operator<(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<bool>
operator<(
const Type& left,
const valarray<Type>& right);
Paramètres
left
Premier des deux valarray
objets dont les éléments doivent être comparés, ou une valeur spécifiée à comparer avec chaque élément d’un valarray
.
right
Deuxième des deux valarray
objets dont les éléments doivent être comparés, ou une valeur spécifiée à comparer avec chaque élément d’un valarray
.
Valeur retournée
Valeurs valarray
booléennes, chacune d’elles étant :
true
si l’élément ou laleft
valeur est inférieur à l’élément ou à la valeur correspondantright
.false
si l’élément ou laleft
valeur n’est pas inférieur à l’élément ou à la valeur correspondantright
.
Notes
Si le nombre d’éléments dans deux valarray
objets n’est pas égal, le résultat n’est pas défini.
Exemple
// valarray_op_lt.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 10 );
valarray<bool> vaNE ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL [ i ] = -i;
for ( i = 1 ; i < 10 ; i += 2 )
vaL [ i ] = i;
for ( i = 0 ; i < 10 ; i++ )
vaR [ i ] = i;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL < vaR );
cout << "The element-by-element result of "
<< "the less-than comparison test is the\n"
<< "valarray: ( ";
for (i = 0 ; i < 10 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 0 1 -2 3 -4 5 -6 7 -8 9 ).
The initial Right valarray is: ( 0 1 2 3 4 5 6 7 8 9 ).
The element-by-element result of the less-than comparison test is the
valarray: ( 0 0 1 0 1 0 1 0 1 0 ).
operator<=
Teste si les éléments d’un valarray
sont inférieurs ou égaux aux éléments d’une taille valarray
égale, ou si tous les éléments d’un valarray
élément sont supérieurs ou inférieurs ou inférieurs à une valeur spécifiée.
template <class Type>
valarray<bool>
operator<=(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<bool>
operator<=(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<bool>
operator<=(
const Type& left,
const valarray<Type>& right);
Paramètres
left
Premier des deux valarray
objets dont les éléments doivent être comparés, ou une valeur spécifiée à comparer avec chaque élément d’un valarray
.
right
Deuxième des deux valarray
objets dont les éléments doivent être comparés, ou une valeur spécifiée à comparer avec chaque élément d’un valarray
.
Valeur retournée
Valeurs valarray
booléennes, chacune d’elles étant :
true
si l’élément ou laleft
valeur est inférieur ou égal à l’élément ou à la valeur correspondantright
.false
si l’élément ou laleft
valeur est supérieur à l’élément ou à la valeur correspondantright
.
Notes
Si le nombre d’éléments dans deux valarray
objets n’est pas égal, le résultat n’est pas défini.
Exemple
// valarray_op_le.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 10 );
valarray<bool> vaNE ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL [ i ] = -i;
for ( i = 1 ; i < 10 ; i += 2 )
vaL [ i ] = i;
for ( i = 0 ; i < 10 ; i++ )
vaR [ i ] = i - 1;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL <= vaR );
cout << "The element-by-element result of "
<< "the less than or equal test is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 0 1 -2 3 -4 5 -6 7 -8 9 ).
The initial Right valarray is: ( -1 0 1 2 3 4 5 6 7 8 ).
The element-by-element result of the less than or equal test is the
valarray: ( 0 0 1 0 1 0 1 0 1 0 ).
operator<<
La gauche déplace les bits pour chaque élément d’un valarray
nombre spécifié de positions, ou par une quantité d’élément spécifiée par une seconde valarray
.
template <class Type>
valarray<Type>
operator<<(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<Type>
operator<<(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<Type>
operator<<(
const Type& left,
const valarray<Type>& right);
Paramètres
left
Valeur à déplacer, ou dont les valarray
éléments doivent être décalés.
right
Valeur indiquant la quantité de décalage gauche, ou dont valarray
les éléments indiquent la quantité d’élément de décalage gauche.
Valeur retournée
Dont valarray
les éléments ont été décalés vers la gauche par la quantité spécifiée.
Notes
Les signes des nombres signés sont préservés.
Exemple
// valarray_op_ls.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 8 ), vaR ( 8 );
valarray<int> vaNE ( 8 );
for ( i = 0 ; i < 8 ; i += 2 )
vaL [ i ] = 1;
for ( i = 1 ; i < 8 ; i += 2 )
vaL [ i ] = -1;
for ( i = 0 ; i < 8 ; i++ )
vaR [ i ] = i;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL << vaR );
cout << "The element-by-element result of "
<< "the left shift is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 1 -1 1 -1 1 -1 1 -1 ).
The initial Right valarray is: ( 0 1 2 3 4 5 6 7 ).
The element-by-element result of the left shift is the
valarray: ( 1 -2 4 -8 16 -32 64 -128 ).
operator*
Obtient le produit à l’échelle des éléments entre les éléments correspondants de deux objets de taille valarray
égale ou entre une valarray
valeur et une valeur spécifiée.
template <class Type>
valarray<Type>
operator*(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<Type>
operator*(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<Type>
operator*(
const Type& left,
const valarray<Type>& right);
Paramètres
left
Premier des deux valarray
objets dont les éléments doivent être multipliés, ou une valeur spécifiée à multiplier avec chaque élément d’un valarray
.
right
Deuxième des deux valarray
objets dont les éléments doivent être multipliés, ou une valeur spécifiée à multiplier avec chaque élément d’un valarray
.
Valeur retournée
Dont valarray
les éléments sont le produit de l’élément et right
left
.
Exemple
// valarray_op_eprod.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 8 ), vaR ( 8 );
valarray<int> vaNE ( 8 );
for ( i = 0 ; i < 8 ; i += 2 )
vaL [ i ] = 2;
for ( i = 1 ; i < 8 ; i += 2 )
vaL [ i ] = -1;
for ( i = 0 ; i < 8 ; i++ )
vaR [ i ] = i;
cout << "The initial Left valarray is: ( ";
for (i = 0 ; i < 8 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for (i = 0 ; i < 8 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL * vaR );
cout << "The element-by-element result of "
<< "the multiplication is the\n"
<< "valarray: ( ";
for (i = 0 ; i < 8 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 2 -1 2 -1 2 -1 2 -1 ).
The initial Right valarray is: ( 0 1 2 3 4 5 6 7 ).
The element-by-element result of the multiplication is the
valarray: ( 0 -1 4 -3 8 -5 12 -7 ).
operator+
Obtient la somme d’éléments entre les éléments correspondants de deux objets de taille valarray
égale ou entre une valarray
valeur et une valeur spécifiée.
template <class Type>
valarray<Type>
operator+(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<Type>
operator+(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<Type>
operator+(
const Type& left,
const valarray<Type>& right);
Paramètres
left
Premier des deux valarray
objets dont les éléments doivent être ajoutés, ou une valeur spécifiée à ajouter avec chaque élément d’un valarray
.
right
Deuxième des deux valarray
objets dont les éléments doivent être ajoutés, ou une valeur spécifiée à ajouter avec chaque élément d’un valarray
.
Valeur retournée
Dont valarray
les éléments sont la somme left
right
des éléments et .
Exemple
// valarray_op_esum.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 8 ), vaR ( 8 );
valarray<int> vaNE ( 8 );
for ( i = 0 ; i < 8 ; i += 2 )
vaL [ i ] = 2;
for ( i = 1 ; i < 8 ; i += 2 )
vaL [ i ] = -1;
for ( i = 0 ; i < 8 ; i++ )
vaR [ i ] = i;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL + vaR );
cout << "The element-by-element result of "
<< "the sum is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 2 -1 2 -1 2 -1 2 -1 ).
The initial Right valarray is: ( 0 1 2 3 4 5 6 7 ).
The element-by-element result of the sum is the
valarray: ( 2 0 4 2 6 4 8 6 ).
operator-
Obtient la différence entre les éléments correspondants de deux objets de taille valarray
égale ou entre une valarray
valeur et une valeur spécifiée.
template <class Type>
valarray<Type>
operator-(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<Type>
operator-(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<Type>
operator-(
const Type& left,
const valarray<Type>& right);
Paramètres
left
Valeur ou valarray
qui sert de minuend, valeur à partir de laquelle d’autres valeurs ou valarray
objets doivent être soustraits dans la formation de la différence.
right
Valeur ou valarray
qui sert de sous-trahend, valeur à soustraire d’autres valeurs ou valarray
objets dans la formation de la différence.
Valeur retournée
Dont valarray
les éléments sont la différence avec les éléments et left
right
.
Notes
Terminologie arithmétique utilisée pour décrire une soustraction :
différence = diminuende – diminuteur
Exemple
// valarray_op_ediff.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 8 ), vaR ( 8 );
valarray<int> vaNE ( 8 );
for ( i = 0 ; i < 8 ; i += 2 )
vaL [ i ] = 10;
for ( i = 1 ; i < 8 ; i += 2 )
vaL [ i ] = 0;
for ( i = 0 ; i < 8 ; i++ )
vaR [ i ] = i;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 8 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL - vaR );
cout << "The element-by-element result of "
<< "the difference is the\n"
<< "valarray: ( ";
for (i = 0 ; i < 8 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 10 0 10 0 10 0 10 0 ).
The initial Right valarray is: ( 0 1 2 3 4 5 6 7 ).
The element-by-element result of the difference is the
valarray: ( 10 -1 8 -3 6 -5 4 -7 ).
operator/
Obtient le quotient par élément entre les éléments correspondants de deux objets de taille valarray
égale, ou entre une valarray
valeur et une valeur spécifiée.
template <class Type>
valarray<Type>
operator/(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<Type>
operator/(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<Type>
operator/(
const Type& left,
const valarray<Type>& right);
Paramètres
left
Valeur ou valarray
qui sert de dividende dans lequel une autre valeur ou valarray
doit être divisée en formant le quotient.
right
Valeur ou valarray
qui sert de diviseur, et qui divise une autre valeur ou valarray
en formant le quotient.
Valeur retournée
Dont valarray
les éléments sont le quotient par élément divisé left
par right
.
Notes
Terminologie arithmétique utilisée pour décrire une division :
quotient = dividende / diviseur
Exemple
// valarray_op_equo.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<double> vaL ( 6 ), vaR ( 6 );
valarray<double> vaNE ( 6 );
for ( i = 0 ; i < 6 ; i += 2 )
vaL [ i ] = 100;
for ( i = 1 ; i < 6 ; i += 2 )
vaL [ i ] = -100;
for ( i = 0 ; i < 6 ; i++ )
vaR [ i ] = 2*i;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 6 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 6 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL / vaR );
cout << "The element-by-element result of "
<< "the quotient is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 6 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 100 -100 100 -100 100 -100 ).
The initial Right valarray is: ( 0 2 4 6 8 10 ).
The element-by-element result of the quotient is the
valarray: ( inf -50 25 -16.6667 12.5 -10 ).
operator==
Teste si les éléments correspondants de deux objets de taille valarray
égale sont égaux ou si tous les éléments d’un valarray
sont égaux à une valeur spécifiée.
template <class Type>
valarray<bool>
operator==(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<bool>
operator==(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<bool>
operator==(
const Type& left,
const valarray<Type>& right);
Paramètres
left
Premier des deux valarray
objets dont les éléments doivent être testés pour l’égalité ou une valeur spécifiée à comparer à chaque valarray
élément.
right
Deuxième des deux valarray
objets dont les éléments doivent être testés pour l’égalité, ou une valeur spécifiée à comparer à chaque valarray
élément.
Valeur de retour
Valeurs valarray
booléennes, chacune d’elles étant :
true
si les éléments correspondants sont égaux.false
si les éléments correspondants ne sont pas égaux.
Notes
Le premier opérateur de modèle retourne un objet de classe valarray<bool>
, chacun des éléments I
dont il s’agit left[I] == right[I]
. Le deuxième opérateur de modèle stocke left[I] == right
dans l’élément I
. Le troisième opérateur de modèle stocke left == right[I]
dans l’élément I
.
Exemple
// valarray_op_eq.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 10 );
valarray<bool> vaNE ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL [ i ] = -i;
for ( i = 1 ; i < 10 ; i += 2 )
vaL [ i ] = i;
for ( i = 0 ; i < 10 ; i++ )
vaR [ i ] = i;
cout << "The initial Left valarray is: ( ";
for (i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaNE = ( vaL == vaR );
cout << "The element-by-element result of "
<< "the equality comparison test is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaNE [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 0 1 -2 3 -4 5 -6 7 -8 9 ).
The initial Right valarray is: ( 0 1 2 3 4 5 6 7 8 9 ).
The element-by-element result of the equality comparison test is the
valarray: ( 1 1 0 1 0 1 0 1 0 1 ).
operator^
Obtient l’OR exclusif au niveau du bit (XOR) entre les éléments correspondants de deux objets de taille valarray
égale, ou entre une valarray
valeur et une valeur spécifiée du type d’élément.
template <class Type>
valarray<Type>
operator^(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<Type>
operator^(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<Type>
operator^(
const Type& left,
const valarray<Type>& right);
Paramètres
left
Premier des deux valarray
objets dont les éléments respectifs doivent être combinés avec le XOR au niveau du bit ou une valeur spécifiée du type d’élément à combiner par un XOR au niveau du bit avec chaque élément d’un valarray
.
right
Deuxième des deux valarray
objets dont les éléments respectifs doivent être combinés avec le XOR au niveau du bit ou une valeur spécifiée du type d’élément à combiner par un XOR au niveau du bit avec chaque élément d’un valarray
.
Valeur retournée
Dont valarray
les éléments sont la combinaison élément-sage de l’opération XOR au niveau du bit de left
et right
.
Notes
Une opération au niveau du bit peut uniquement être utilisée pour manipuler des bits dans et des char
types de données et des variantes, et non pas sur float
, , double
, long double
ou void
bool
d’autres types de données plus complexes.int
L’or exclusif au niveau du bit (XOR) a la sémantique suivante : bits b1 et b2, b1 XOR b2 est 1 si exactement l’un des bits est 1 ; 0 si les deux bits sont 0 ou si les deux bits sont 1.
Exemple
// valarray_op_xor.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 10 );
valarray<int> vaLAA ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL [ i ] = 1;
for ( i = 1 ; i < 10 ; i += 2 )
vaL [ i ] = 0;
for ( i = 0 ; i < 10 ; i += 3 )
vaR [ i ] = i;
for ( i = 1 ; i < 10 ; i += 3 )
vaR [ i ] = i-1;
for ( i = 2 ; i < 10 ; i += 3 )
vaR [ i ] = i-1;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaLAA = ( vaL ^ vaR );
cout << "The element-by-element result of "
<< "the bitwise XOR operator^ is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaLAA [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 1 0 1 0 1 0 1 0 1 0 ).
The initial Right valarray is: ( 0 0 1 3 3 4 6 6 7 9 ).
The element-by-element result of the bitwise XOR operator^ is the
valarray: ( 1 0 0 3 2 4 7 6 6 9 ).
operator|
Obtient l’OR au niveau du bit entre les éléments correspondants de deux objets de taille valarray
égale ou entre une valarray
valeur et une valeur spécifiée du type d’élément.
template <class Type>
valarray<Type>
operator|(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<Type>
operator|(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<Type>
operator|(
const Type& left,
const valarray<Type>& right);
Paramètres
left
Premier des deux valarray
objets dont les éléments respectifs doivent être combinés avec l’or au niveau du bit ou une valeur spécifiée du type d’élément à combiner par or au niveau du bit avec chaque élément d’un valarray
.
right
Deuxième des deux valarray
objets dont les éléments respectifs doivent être combinés avec l’or au niveau du bit, ou une valeur spécifiée du type d’élément à combiner par or au niveau du bit avec chaque élément d’un valarray
.
Valeur retournée
Dont valarray
les éléments sont la combinaison élément-sage de l’opération OR au niveau du bit de left
et right
.
Notes
Une opération au niveau du bit peut uniquement être utilisée pour manipuler des bits dans et des char
types de données et des variantes, et non pas sur float
, , double
, long double
ou void
bool
d’autres types de données plus complexes.int
L’or au niveau du bit a la même table de vérité que l’OR logique, mais s’applique au type de données au niveau des bits individuels. Les bits b1 et b2 donnés, b1 OR b2 est 1 si au moins un des bits est 1, ou 0 si les deux bits sont 0. L’OR operator||
logique s’applique au niveau d’un élément, en comptant toutes les valeurs non nulles en tant que true
, et le résultat est une valarray
valeur booléenne. En revanche, l’OR operator|
au niveau du bit peut entraîner une valarray
valeur autre que 0 ou 1, en fonction du résultat de l’opération au niveau du bit.
Exemple
// valarray_op_bitor.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 10 );
valarray<int> vaLAA ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL [ i ] = 1;
for ( i = 1 ; i < 10 ; i += 2 )
vaL [ i ] = 0;
for ( i = 0 ; i < 10 ; i += 3 )
vaR [ i ] = i;
for ( i = 1 ; i < 10 ; i += 3 )
vaR [ i ] = i-1;
for ( i = 2 ; i < 10 ; i += 3 )
vaR [ i ] = i-1;
cout << "The initial Left valarray is: ( ";
for (i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for (i = 0 ; i < 10 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaLAA = ( vaL | vaR );
cout << "The element-by-element result of "
<< "the bitwise OR operator| is the\n"
<< "valarray: ( ";
for (i = 0 ; i < 10 ; i++ )
cout << vaLAA [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 1 0 1 0 1 0 1 0 1 0 ).
The initial Right valarray is: ( 0 0 1 3 3 4 6 6 7 9 ).
The element-by-element result of the bitwise OR operator| is the
valarray: ( 1 0 1 3 3 4 7 6 7 9 ).
operator||
Obtient l’OR logique entre les éléments correspondants de deux objets de taille valarray
égale, ou entre une valeur et une valarray
valeur spécifiée du type d’élément valarray
.
template <class Type>
valarray<bool>
operator||(
const valarray<Type>& left,
const valarray<Type>& right);
template <class Type>
valarray<bool>
operator||(
const valarray<Type>& left,
const Type& right);
template <class Type>
valarray<bool>
operator||(
const Type& left,
const valarray<Type>& right);
Paramètres
left
Premier des deux valarray
objets dont les éléments respectifs doivent être combinés avec l’OR logique, ou une valeur spécifiée du type d’élément à combiner avec chaque élément d’un valarray
.
right
Deuxième des deux valarray
objets dont les éléments respectifs doivent être combinés avec l’OR logique, ou une valeur spécifiée du type d’élément à combiner avec chaque élément d’un valarray
.
Valeur retournée
Dont valarray
les éléments sont de type bool
et sont la combinaison à l’échelle de l’élément de l’opération OR logique de left
et right
.
Notes
L’OR operator||
logique s’applique au niveau d’un élément, en comptant toutes les valeurs non nulles en tant que true
, et le résultat est une valarray
valeur booléenne. La version au niveau du bit de OR, operator|
en revanche, peut entraîner une valarray
valeur autre que 0 ou 1, en fonction du résultat de l’opération au niveau du bit.
Exemple
// valarray_op_logor.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 10 );
valarray<bool> vaLOR ( 10 );
for ( i = 0 ; i < 10 ; i += 2 )
vaL [ i ] = 0;
for ( i = 1 ; i < 10 ; i += 2 )
vaL [ i ] = i-1;
for ( i = 0 ; i < 10 ; i += 3 )
vaR [ i ] = i;
for ( i = 1 ; i < 10 ; i += 3 )
vaR [ i ] = 0;
for ( i = 2 ; i < 10 ; i += 3 )
vaR [ i ] = 0;
cout << "The initial Left valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
cout << "The initial Right valarray is: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaR [ i ] << " ";
cout << ")." << endl;
vaLOR = ( vaL || vaR );
cout << "The element-by-element result of "
<< "the logical OR operator|| is the\n"
<< "valarray: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaLOR [ i ] << " ";
cout << ")." << endl;
}
The initial Left valarray is: ( 0 0 0 2 0 4 0 6 0 8 ).
The initial Right valarray is: ( 0 0 0 3 0 0 6 0 0 9 ).
The element-by-element result of the logical OR operator|| is the
valarray: ( 0 0 0 1 0 1 1 1 0 1 ).