Partager via


bitset::reference

Une classe proxy qui renvoie à des bits contenus dans un ensemble de bits (bitset) utilisé pour accéder et manipuler les différents bits en tant que classe d'assistance pour l'operator[] de classe bitset.

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

Paramètres

  • _Val
    La valeur de l'objet de type bool à attribuer à un bit dans un bitset.

  • _Bitref
    Une référence au format x [i] à un bit à la position i dans le bitset x.

Valeur de retour

Une référence au bit dans le bitset spécifié par la position des arguments pour la première, seconde, et cinquième fonction membre de classe référence, et true ou false, pour de refléter la valeur du bit modifié dans le bitset pour la troisième et quatrième fonction membre de la classe référence.

Notes

La référence de classe existe uniquement en tant que classe d'assistance pour le bitset operator[]. La classe membre décrit un objet qui peut accéder à un bit spécifique dans un bitset. Soit b un objet de type bool, x et y du type bitset<N>, ainsi quei et j des positions valides dans un tel objet. La notation x [i] fait référence au bit à la position i dans le bitset x. Les fonctions membres de la classe référence fournissent, dans l'ordre, les opérations suivantes :

Opération

Définition

x[i] = b

Stocke une valeurboolb en position du biti dans le bitset x.

x[i] = y[j]

Stocke la valeur du bit y[j] à la position du bit i dans le bitset x.

b = ~x[i]

Stocke la valeur renvoyée du bit x[i] dans bool b.

b = x[i]

Stocke la valeur renvoyée du bit x[i] dans bool b.

x[i].flip( )

Stocke la valeur renvoyée du bit x[i] à la position du bit i de x.

Exemple

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

Configuration requise

En-tête : <bitset>

Espace de noms : std

Voir aussi

Référence

bitset, classe

Sécurité des threads dans la bibliothèque standard C++