valarray::operator&=
Obtains the bitwise AND of elements in an array either with the corresponding elements in a specified valarray or with a value of the element type.
valarray<Type>& operator&=(
const valarray<Type>& _Right
);
valarray<Type>& operator&=(
const Type& _Right
);
Parameters
- _Right
The valarray or value of an element type identical to that of the operand valarray that is to be combined, element-wise, by the logical AND with the operand valarray.
Return Value
A valarray whose elements are the element-wise logical AND of the operand valarray by _Right.
Remarks
A bitwise operation can only be used to manipulate bits in char and int data types and variants and not on float, double, long double, void, bool, or other, more complex data types.
The bitwise AND has the same truth table as the logical AND but applies to the data type on the level of the individual bits. Given bits b1 and b2, b1 AND b2 is true if both bits are true; false if at least one is false.
Example
// valarray_class_op_bitand.cpp
// compile with: /EHsc
#include <valarray>
#include <iostream>
int main( )
{
using namespace std;
int i;
valarray<int> vaL ( 10 ), vaR ( 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 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;
vaL &= vaR;
cout << "The element-by-element result of "
<< "the logical AND operator&= is the\n valarray: ( ";
for ( i = 0 ; i < 10 ; i++ )
cout << vaL [ i ] << " ";
cout << ")." << endl;
}
The initial 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 2 0 4 0 6 0 8 ).
Requirements
Header: <valarray>
Namespace: std