Condividi tramite


operator^

Ottiene OR esclusivo bit per bit (XOR) tra gli elementi corrispondenti di due valarrays ugualmente ridimensionare o tra un valore valarray e specificato del tipo di elemento.

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
   );

Parametri

  • _Left
    Il primo dei due valarrays dei rispettivi elementi sono di essere combinati con XOR bit per bit o un valore specificato del tipo di elemento sia bit per bit combinato con ogni elemento di un valarray.

  • _Right
    Il secondo dei due valarrays dei rispettivi elementi sono di essere combinati con XOR bit per bit o un valore specificato del tipo di elemento sia bit per bit combinato con ogni elemento di un valarray.

Valore restituito

Un valarray dei cui elementi costituiscono la combinazione come un elemento dell'operazione bit per bit di XOR di _Left e di _Right.

Note

Un'operazione OR bit per bit può essere utilizzata solo per modificare i bit in char e tipi di dati e varianti di int e non su mobile, in Double, in long double, in void bool o in un altro, tipi di dati più complessi.

OR esclusivo bit per bit (XOR) è riportata la semantica: I bit specificati b1 e b2, b1XOR b2è true se esattamente uno dei bit è true; false se entrambi i bit sono false o se entrambi i bit sono true.

Esempio

// 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;
}
  

Requisiti

Header: <valarray>

Spazio dei nomi: std