Freigeben über


bitset::reference

Eine Proxyklasse, die Verweise auf die Bits bereitstellt, enthielt in einem bitset, das verwendet wird, um auf die einzelnen Bits als Hilfsklasse für operator[] von Klasse bitset zuzugreifen und zu bearbeiten.

class reference {
   friend class bitset<N>;
   public:
      reference& operator=(
         bool _Val
      );
      reference& operator=(
         const reference& _Bitref
      );
      bool operator~( ) const;
      operator bool( ) const;
      reference& flip( );
};

Parameter

  • _Val
    Der Wert des Objekts des Typs zu einem Bit in einem bitset zugewiesen werden bool.

  • _Bitref
    Ein Verweis des Formulars x i [] zum Bit in I Position in bitset x.

Rückgabewert

Ein Verweis auf das Bit im bitset angegeben durch die Argumentposition für das erste, zweite und fünfte Memberfunktionen des Klassenverweises und des true oder des false, den Wert des geänderten Bits im bitset für die dritten und vierten Memberfunktionen des Klassenverweises wiederzugeben.

Hinweise

Der Klassenverweis ist nur als Hilfsklasse für das bitset operator[].Die Memberklasse beschreibt ein Objekt, das auf ein einzelnes Bit innerhalb eines bitset zugreifen kann.Lassen Sie b ein Objekt des Typs bool, x und y-Objekte sein des Typs bitset<N> und die gültigen Positionen i und J innerhalb eines solchen Objekts.Die Notation x i [] verweist das Bit in I Position in bitset *x.*Die Memberfunktionen des Klassenverweises stellen, in der Reihenfolge, die folgenden Vorgänge bereit:

Vorgang

Definition

x[]i= b

Speichert bool-Wert b in Bitposition I im Bitset x.

x[i] = y[j]

Speichert den Wert des Bits y[j] in Bitposition I im Bitset x.

b = ~x[i]

Speichert den gekippten Wert des Bits x[i] in boolb.

b = x[i]

Speichert den Wert des Bits x[] in booli. A.

x[i].flip( )

Speichert den gekippten Wert des Bits x[i] zurück an Bitposition I in x.

Beispiel

// bitset_reference.cpp
// compile with: /EHsc
#include <bitset>
#include <iostream>

int main( )
{
   using namespace std;

   bitset<5> b1 ( 2 );
   bitset<5> b2 ( 6 );
   cout << "The initialized bitset<5> b1( 2 ) is: ( "<< b1 << " )."
        << endl;
   cout << "The initialized bitset<5> b2( 6 ) is: ( "<< b2 << " )."
        << endl;

   // Example of x [i] = b storing bool b at bit position i
   // in bitset x
   b1[ 0 ] = true;
   cout << "The bitset<5> b1 with the bit at position 0 set to 1"
        << " is: ( "<< b1 << " )" << endl;
   
   // Example of x [i] = y [j] storing the bool value of the
   // bit at position j in bitset y at bit position i in bitset x
   b2 [4] = b1 [0];      // b1 [0] = true
   cout << "The bitset<5> b2 with the bit at position 4 set to the "
        << "value\n of the bit at position 0 of the bit in "
        << "bitset<5> b1 is: ( "<<  b2  << " )" << endl;

   // Example of b = ~x [i] flipping the value of the bit at
   // position i of bitset x and storing the value in an 
   // object b of type bool
   bool b = ~b2 [4];      // b2 [4] = false
   if ( b )
      cout << "The value of the object b = ~b2 [4] "
           << "of type bool is true." << endl;
   else
      cout << "The value of the object b = ~b2 [4] "
           << "of type bool is false." << endl;
   
   // Example of b = x [i] storing the value of the bit at
   // position i of bitset x in the object b of type bool
   b = b2 [4];
   if ( b )
      cout << "The value of the object b = b2 [4] "
           << "of type bool is true." << endl;
   else
      cout << "The value of the object b = b2 [4] "
           << "of type bool is false." << endl;

   // Example of x [i] . flip ( ) toggling the value of the bit at
   // position i of bitset x
   cout << "Before flipping the value of the bit at position 4 in "
        << "bitset b2,\n it is ( "<<  b2  << " )." << endl;
   b2 [4].flip( );
   cout << "After flipping the value of the bit at position 4 in "
        << "bitset b2,\n it becomes ( "<<  b2  << " )." << endl;
   bool c;
   c = b2 [4].flip( );
   cout << "After a second toggle, the value of the position 4"
        << " bit in b2 is now: " << c << ".";
}
  
  
  
  
  
  
  

Anforderungen

Header: <bitset>

Namespace: std

Siehe auch

Referenz

bitset Class

Threadsicherheit in der C++-Standardbibliothek