Condividi tramite


operator|

Ottiene OR bit per bit tra gli elementi corrispondenti di due valarrays ugualmente ridimensionati 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 OR 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 OR 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 sono la combinazione di un elemento dell'operazione bit per bit OR_Left e _Right.

Note

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

Il OR bit per bit ha la stessa tabella di flusso ORlogico, ma viene applicato al tipo di dati a livello di singoli bit.I bit specificati b1o b2, b1ORb2è true se almeno uno dei bit è true o false se entrambi i bit sono false.ORlogicooperatore|| viene applicato a un livello elemento, contante tutti i valori diversi da zero come truee il risultato è un valarray di valori boolean.Il OR bit per bit operator|, invece, può comportare un valarray di valori diversi da 0 o 1, a seconda del risultato di un'operazione bit per bit.

Esempio

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

Requisiti

intestazione: <valarray>

Spazio dei nomi: deviazione standard