Freigeben über


operator^

Erhält bitweise exklusive OR (XOR) zwischen entsprechenden Elemente zweier gleichmäßig skalierten Wertarrays oder zwischen einem Array von Werten und einem bestimmten Wert des Elementtyps.

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

Parameter

  • _Left
    Das erste der zwei Wertarrays, deren entsprechende Elemente, mit bitweisen XOR kombiniert werden oder ein Wert des Elementtyps, um für jedes Element eines Wertarrays kombiniertes bitweise sein sollen.

  • _Right
    Das zweite der beiden Wertarrays, deren entsprechende Elemente, mit bitweisen XOR kombiniert werden oder ein Wert des Elementtyps, um für jedes Element eines Wertarrays kombiniertes bitweise sein sollen.

Rückgabewert

Ein Wertearray, dessen Elemente mit elementweise Kombination des bitweisen XOR Operation von _Left und _Right. sind

Hinweise

Eine bitweise Operation kann nur verwendet werden, um in Bits char und int und -Varianten Datentypen und nicht auf float, double, long double, void oder bool andere, mehr Typen komplexer Daten zu bearbeiten.

Bitweise exklusive OR (XOR) hat folgende Semantik: Angegebene Bits b1 AND b2, b1XOR b2 ist true, wenn nur eines der Bits true ist; false, wenn beide Bits falsch sind, oder wenn beide Bits erfüllt sind.

Beispiel

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

Anforderungen

Header: <valarray>

Namespace: std