C ++ライブラリ-<ビットセット>
前書き
ビットセットはNビットの固定サイズシーケンスを表し、0または1のいずれかの値を格納します。ゼロは値が偽またはビットが設定されていないことを意味し、1は値が真またはビットが設定されていることを意味します。ビットセットクラスは、各要素が1ビットのみを占めるブール値のスペース効率の良い配列をエミュレートします。
配列をエミュレートするため、インデックスも0番目の位置から始まります。ビットセットの個々のビットには、添え字演算子を使用してアクセスできます。たとえば、ビットセットfooの最初の要素にアクセスするには、foo [0]を使用します。
ビットセットクラスは、文字列だけでなく整数からもビットセットを作成するコンストラクタを提供します。ビットセットのサイズはコンパイル時に固定されます。STLは、動的なサイズ変更機能を提供するvector <bool>クラスを提供します。
定義
以下は、<bitset>ヘッダーファイルからのstd :: bitsetの定義です。
template <size_t N> class bitset;
パラメーター
N −ビットセットのサイズ。
メンバータイプ
以下のメンバータイプは、パラメーターとして使用したり、メンバー関数によってタイプを返すことができます。
シニア番号 | メンバータイプ | 定義 |
---|---|---|
1 | 参照 | ビットへの参照を表すプロキシクラス。 |
<ビットセット>からの関数
以下は、<bitset>ヘッダーのすべてのメソッドのリストです。
コンストラクター
シニア番号 | 方法と説明 |
---|---|
1 | bitset :: bitset() ビットセットコンテナを構築し、ゼロで初期化します。 |
2 | bitset :: bitset() ビットセットコンテナを構築し、valのビット値で初期化します。 |
3 | bitset :: bitset() C ++文字列オブジェクトからビットセットコンテナを構築して初期化します。 |
4 | bitset :: bitset() cスタイルの文字列からビットセットコンテナを構築して初期化します。 |
メンバークラス
シニア番号 | 方法と説明 |
---|---|
1 | bitset :: reference() これは、std :: bitset :: operator []から返すことができるl値を提供する埋め込みクラスです。 |
ビットセット演算子
シニア番号 | 方法と説明 |
---|---|
1 | bitset :: operator&= 現在のビットセットオブジェクトに対してビット単位のAND演算を実行します。 |
2 | bitset :: operator | = 現在のビットセットオブジェクトに対してビット単位のOR演算を実行します。 |
3 | bitset :: operator ^ = 現在のビットセットオブジェクトに対してビット単位のXOR演算を実行します。 |
4 | bitset :: operator << = 現在のビットセットオブジェクトに対してビット単位の左SHIFT演算を実行します。 |
5 | bitset :: operator >> = 現在のビットセットオブジェクトに対してビット単位の右SHIFT操作を実行します。 |
6 | bitset :: operator〜 ビットセットに対してビット単位のNOT演算を実行します。 |
7 | bitset :: operator << ビットセットでビット単位の左SHIFT演算を実行します。 |
8 | bitset :: operator >> ビットセットでビット単位の右SHIFT操作を実行します。 |
9 | bitset :: operator == 2つのビットセットが等しいかどうかをテストします。 |
10 | bitset :: operator!= 2つのビットセットが等しいかどうかをテストします。 |
11 | bitset :: operator& ビットセットに対してビット単位のAND演算を実行します。 |
12 | bitset :: operator | ビットセットに対してビット単位のOR演算を実行します。 |
13 | bitset :: operator ^ ビットセットでビット単位のXOR演算を実行します。 |
14 | bitset :: operator >> isから最大Nビットを抽出し、別のビットセットxに格納します。 |
15 | bitset :: operator >> ビットセットxを文字ストリームosに挿入します。 |
メンバー関数
シニア番号 | 方法と説明 |
---|---|
1 | bitset :: all() ビットセットのすべてのビットが設定されているかどうかをテストします。 |
2 | bitset :: any() ビットセットの少なくとも1ビットが設定されているかどうかをテストします。 |
3 | bitset :: count() ビットセットからセットビットの数を数えます。 |
4 | bitset :: flip() すべてのビット ビットセットからすべてのビットを切り替えます。 |
5 | bitset :: flip() シングルビット ビットセットからシングルビットを切り替えます。 |
6 | bitset :: none() すべてのビットが設定されていないかどうかをテストします。 |
7 | bitset :: operator [] boolバージョン 位置posのビットの値を返します。 |
8 | bitset :: operator [] リファレンスバージョン 位置posのビットの参照を返します。 |
9 | bitset :: reset() すべてのビット ビットセットのすべてのビットをゼロにリセットします。 |
10 | bitset :: reset() シングルビット ビットセットの1ビットをゼロにリセットします。 |
11 | bitset :: set() すべてのビット ビットセットからすべてのビットを1に設定します。 |
12 | bitset :: set() シングルビット ビットセットから1ビットを1または0に設定します。 |
13 | bitset :: size() ビットセットのサイズを報告します。 |
14 | bitset :: test() N番目のビットが設定されているかどうかをテストします。 |
15 | bitset :: to_string() ビットセットオブジェクトを文字列オブジェクトに変換します。 |
16 | bitset :: to_ullong() ビットセットをunsignedlonglongに変換します。 |
17 | bitset :: to_ulong() ビットセットをunsignedlongに変換します。 |
非会員機能
シニア番号 | 方法と説明 |
---|---|
1 | bitset :: hash() 指定されたビットセットに基づいてハッシュ値を返します。 |