C++ STLのmultiset::empty()関数を徹底解説!使い方とサンプルコード
本記事では、C++ STLにおける multiset::empty() 関数の動作、構文、および具体的な使用例について詳しく解説します。
C++ STLにおけるmultisetとは?
multisetは、setコンテナとよく似たコンテナです。setと同様に、値をキーの形式で特定の順序に従って格納します。
multisetでは、setと同じく値がキーとして識別されます。両者の主な違いは、setが重複しないキー(同じキーは2つ存在できない)を持つのに対し、multisetでは同じキー値を複数格納できるという点です。
なお、multisetのキーは二分探索木の実装にも利用されます。
multiset::empty()とは?
multiset::empty()関数は、C++ STLに標準で組み込まれている関数で、<set> ヘッダーファイル内で定義されています。
この関数は、関連付けられたmultisetコンテナが空かどうかを判定します。
empty()は、コンテナのサイズが0であればtrueを返します。逆に、コンテナ内に要素が1つでも存在する場合、つまりサイズが0でない場合はfalseを返します。
構文
ms_name.empty();
パラメータ
この関数は、パラメータを一切受け取りません。
戻り値
コンテナが空の場合はブール値のtrueを、空でない場合はfalseを返します。
入出力例
入力: std::multiset<int> mymultiset = {1, 2, 2, 3, 4};
mymultiset.empty();
出力: false
入力: std::multiset<int> mymultiset;
mymultiset.empty();
出力: true
サンプルコード①:要素が存在する場合
#include <bits/stdc++.h>
using namespace std;
int main() {
int arr[] = {2, 3, 4, 5};
multiset<int> check(arr, arr + 4);
if (check.empty())
cout << "The multiset is empty";
else
cout << "The multiset isn't empty";
return 0;
}
出力
上記のコードを実行すると、次のような出力が生成されます。
The multiset isn't empty
この例では、multisetに4つの要素が格納されているため、empty()はfalseを返し、コンテナが空でないことを示すメッセージが表示されます。
サンプルコード②:コンテナが空の場合
#include <bits/stdc++.h>
using namespace std;
int main() {
int arr[] = {};
multiset<int> check(arr, arr + 0);
if (check.empty())
cout << "The multiset is empty";
else
cout << "The multiset isn't empty";
return 0;
}
出力
上記のコードを実行すると、次のような出力が生成されます。
The multiset is empty
この例では、空の配列からmultisetを構築しているため、コンテナのサイズは0となり、empty()はtrueを返します。
まとめ
multiset::empty()は、multisetコンテナが空かどうかを簡単に判定できる便利な関数です。要素を追加する前の状態チェックや、コンテナを操作する前の事前確認など、さまざまな場面で活用できます。なお、同様の判定は size() == 0 でも行えますが、empty()の方が意図が明確で、多くの実装で効率的に動作するため推奨されています。
-
C++ STLのtanh()関数とは?基本構文とサンプルコードを徹底解説
tanh()関数とはtanh()関数は、ラジアン単位で指定された角度の双曲線正接(ハイパボリックタンジェント)を返すC++ STLの組み込み関数です。使用する際は、<cmath>ヘッダーをインクルードします。構文tanh(var)構文から分かるように、tanh()関数はfloat型・double型・long double型のいずれかの値を持つ引数varを1つ受け取り、その双曲線正接を返します。基本的な使用例以下は、C++でtanh()関数を使用するプログラムの例です。#include <iostream> #include <cmath> using nam
-
C++ STLのatanh()関数とは?逆双曲線正接の計算方法を解説
atanh()関数は、引数として与えられた値の逆双曲線正接(アークハイパボリックタンジェント)を返す数学関数です。C++の標準テンプレートライブラリ(STL)に組み込まれており、<cmath>ヘッダーをインクルードすることで利用できます。atanh()関数の構文は以下のとおりです。atanh(var)構文からわかるように、atanh()関数はfloat型、double型、またはlong double型のパラメータvarを受け取ります。このパラメータには-1以上1以下の値を指定する必要があります。戻り値として、varの逆双曲線正接が返されます。なお、引数が-1未満または1より大きい場