Leggere in inglese

Condividi tramite


operator|

Ottiene OR bit per bit 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 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 costituiscono la combinazione come un elemento dell'operazione bit per bit di OR 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, in bool o in un altro, tipi di dati più complessi.

Il OR bit per bit ha la stessa tabella di sincerità di ORlogico, ma è valido per il tipo di dati a livello dei singoli bit. I bit specificati b1 e b2, b1OR b2è true se almeno uno dei bit è true o false se entrambi i bit è false. OR logicooperatore|| viene applicato a un livello elemento, contante tutti i valori diversi da zero come true e 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 dell'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

Header: <valarray>

Spazio dei nomi: std