次の方法で共有


bitset::reference

ビットへの参照を提供するプロキシ クラスは、クラスの bitset の operator[] のヘルパー クラスとして個々のビットにアクセスして処理するために使用される 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( );
};

パラメーター

  • _Val
    bitset ビットに割り当てる bool 型のオブジェクトの値。

  • _Bitref
    bitset . X位置の I ビットまでフォームの X [i] の参照。

戻り値

クラスの参照の 3 番目と 4 番目のメンバー関数の bitset の変更されたビットの値を反映するために、1 番目のに対して引数の位置に、クラスの参照の秒単位で指定されたビット bitset のへの参照と、5 番目のメンバー関数と true または false

解説

クラスの参照は bitset **operator[]**のヘルパー クラスとしてのみ存在します。このクラスは bitset 内の個々のビットにアクセスできるオブジェクトを表します。b が 型 **bitset<N>**など、オブジェクト内の ij の 有効な位置の型 bool、xy の オブジェクトのオブジェクトになるようにします。表記 X [i] bitset xI 位置のビットを参照します。クラスの参照のメンバー関数は、次の操作を提供します:

演算

定義

x[i] = b

bitset xのビット位置 I ストアの値 boolb

x[i] = [入力]のy

bitset xのビット位置で I ビットのy[入力] の値を格納します。

b = ~x [i]

boolbでビット x[i] を逆の値を格納します。

xb = [i]

boolbでビット x[i] の値を格納します。

x[i]。flip ()

xのビット位置で xI ビットの[i] [戻る] を逆の値を格納します。

使用例

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

必要条件

ヘッダー: <bitset>

名前空間: std

参照

関連項目

bitset Class

C++ の標準ライブラリのスレッド セーフ