C++ STLのbitset::all()関数とは?使い方とサンプルコードをわかりやすく解説
bitset::all() は、C++ の標準テンプレートライブラリ(STL)に組み込まれている関数の一つです。この関数はブール値(bool)を返し、呼び出したビットセットのすべてのビットが 1 であれば true を、1 つでも 0 のビットがあれば false を返します。
引数(パラメータ)は一切受け取らず、単純にブール値のみを返すシンプルな関数です。すべてのビットが立っているかどうかを一発で判定できるため、フラグ管理や状態チェックなどの場面で便利です。
構文
bool bitset_name.all();
戻り値
- true:ビットセット内の全ビットが 1 の場合
- false:0 のビットが 1 つでも存在する場合
動作例
Bitset = 100101
この場合の出力は以下のようになります。
false
これは、ビットセットの中に 0 のビットが含まれているためです。true を返すには、セット内のすべてのビットが 1 である必要があります。
サンプルコード
#include <bits/stdc++.h>
using namespace std;
void printer(bool val){
if(val){
cout << "The bitset has all bits set" << endl;
} else {
cout << "The bitset does not have all bits set" << endl;
}
}
int main() {
bitset<4> bit1(string("1011"));
bitset<6> bit2(string("111111"));
cout << "The bitset is " << bit1 << endl;
printer(bit1.all());
cout << "The bitset is " << bit2 << endl;
printer(bit2.all());
return 0;
}実行結果
The bitset is 1011 The bitset does not have all bits set The bitset is 111111 The bitset has all bits set
コードの解説
- bit1(1011):4 ビット中 3 番目のビットが 0 であるため、
all()は false を返します。 - bit2(111111):6 ビットすべてが 1 であるため、
all()は true を返します。
このように、bitset::all() を使えば、ループで各ビットを手動確認する必要がなく、簡潔なコードで「全ビットが立っているか」を判定できます。なお、C++11 以降で利用可能な関数なので、古いコンパイラを使用する場合は注意が必要です。
-
C++ STLのcosh()関数とは?双曲線余弦の求め方をサンプルコード付きで解説
cosh()関数とは? C++のSTLに組み込まれているcosh()関数は、ラジアン単位で与えられた角度の双曲線余弦(ハイパボリック・コサイン)を計算して返す関数です。使用するには、<cmath>ヘッダーをインクルードする必要があります。 双曲線余弦は、数学的に次の式で定義されます。 cosh(x) = (e^x + e^(-x)) / 2 構文 cosh()関数の構文は以下の通りです。 cosh(var) 構文から分かるように、cosh()関数はfloat型、double型、long double型のいずれかの引数varを受け取ります。そして、その双曲線余弦を返します。なお、引
-
C++ STLのsinh()関数の使い方を徹底解説
sinh()関数とはsinh()関数は、ラジアンで指定された値の双曲線正弦(ハイパボリックサイン)を返す関数です。C++のSTL(標準テンプレートライブラリ)に組み込まれており、<cmath>ヘッダをインクルードすることで利用できます。双曲線正弦は、以下の数式で定義されます。sinh(x) = (e^x − e^−x) / 2sinh()関数の構文sinh()関数の構文は以下のとおりです。sinh(var)構文からわかるように、sinh()関数はfloat型、double型、long double型のいずれかのパラメータvarを受け取ります。戻り値は、varの双曲線正弦です。sin