Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Obtains the logical AND between corresponding elements of two equally sized valarrays or between a valarray and a specified value of the valarray's element type.
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
);
Parameters
_Left
The first of the two valarrays whose respective elements are to be combined with the logical AND or a specified value of the element type to be combined with each element of a valarray._Right
The second of the two valarrays whose respective elements are to be combined with the logical AND or a specified value of the element type to be combined with each element of a valarray.
Return Value
A valarray whose elements are of type bool and are the element-wise combination of the logical AND operation of _Left and _Right.
Remarks
The logical AND operator&& applies on an element level, counting all nonzero values as true, and the result is a valarray of Boolean values. The bitwise version of AND, operator&,, by contrast, can result in a valarray of values other than 0 or 1, depending on the outcome of the bitwise operation.
Example
// 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 ).
Requirements
Header: <valarray>
Namespace: std