Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés

operator^

 

Obtiene el exclusivo bit a bit OR (XOR) entre los elementos correspondientes de dos valarrays igual tamaños o entre una valarray y un valor del tipo de elemento especificado.

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

_Left

El primero de los dos valarrays cuyos elementos respectivos van a combinarse con el bit a bit XOR o un valor especificado del tipo de elemento que se combinan bit a bit con cada elemento de una valarray.

_Right

El segundo de los dos valarrays cuyos elementos respectivos van a combinarse con el bit a bit XOR o un valor especificado del tipo de elemento que se combinan bit a bit con cada elemento de una valarray.

Una valarray cuyos elementos son la combinación de elementos de bit a bit XOR la operación de _Left y _Right.

Una operación bit a bit sólo puede utilizarse para manipular los bits de char y int tipos de datos y sus variantes y no en float, doble, long double, void bool u otros, tipos de datos más complejos. 

El exclusivo bit a bit OR (XOR) tiene la semántica siguiente: dada bits b1 y b2, b1 XOR b2 es true si exactamente uno de los bits es true; false si ambos bits son falsas o si ambos bits son true. 

Ejemplo

// 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;
}
Es la valarray inicial izquierda: (1 0 1 0 1 0 1 0 1 0). La valarray derecho inicial es: (0 0 1 3 3 4 6 6 7 9). El resultado del elemento por el operador XOR bit a bit ^ es la valarray: (1 0 0 3 2 4 7 6 6 9).

Requisitos

Encabezado: <valarray>

Espacio de nombres: std

Mostrar: