Compartilhar via


operator|

Obtém OR bit a bit entre os elementos correspondentes de dois valarrays igualmente feito sob medida ou um valor entre valarray e do tipo do 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
   );

Parâmetros

  • _Left
    O primeiro dos dois valarrays cujos elementos respectivos são combinados com OR bit a bit ou um valor do tipo do elemento especificado para ser bit a bit combinado com cada elemento de um valarray.

  • _Right
    O segundo de dois valarrays cujos elementos respectivos são combinados com OR bit a bit ou um valor do tipo do elemento especificado para ser bit a bit combinado com cada elemento de um valarray.

Valor de retorno

Um valarray cujos elementos sejam elemento pela combinação da operação bit a bit de OR de _Left e de _Right.

Comentários

Uma operação bit a bit só pode ser usado para manipular bit em char e tipos de dados e variantes de int e não em float, em double, em  longdouble, em void, em bool ou em outro, os tipos de dados mais complexos.

O operador bit a bit OR tem a mesma tabela verdadeiros que ORlógico, mas se aplica ao tipo de dados no nível de bits individuais. Os bits dados b1e b2, b1OR b2são true se pelo menos um dos bits é verdadeiro ou false se ambos os bits forem false. OR lógicooperador|| se aplica em um nível de elemento, contando todos os valores diferentes de zero como true, e o resultado é um valarray de valores boolianos. O operador bit a bit OR operator|, entretanto, podem resultar em um valarray dos valores diferentes de 0 ou 1, dependendo do resultado de operação bit a bit.

Exemplo

// valarray_op_bitor.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 OR operator| is the\n valarray: ( ";
      for (i = 0 ; i < 10 ; i++ )
         cout << vaLAA [ i ] << " ";
   cout << ")." << endl;
}
  

Requisitos

Cabeçalho: <valarray>

Namespace: std