C++
 Computer >> コンピューター >  >> プログラミング >> C++

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()の方が意図が明確で、多くの実装で効率的に動作するため推奨されています。

  1. 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

  2. C++ STLのatanh()関数とは?逆双曲線正接の計算方法を解説

    atanh()関数は、引数として与えられた値の逆双曲線正接(アークハイパボリックタンジェント)を返す数学関数です。C++の標準テンプレートライブラリ(STL)に組み込まれており、<cmath>ヘッダーをインクルードすることで利用できます。atanh()関数の構文は以下のとおりです。atanh(var)構文からわかるように、atanh()関数はfloat型、double型、またはlong double型のパラメータvarを受け取ります。このパラメータには-1以上1以下の値を指定する必要があります。戻り値として、varの逆双曲線正接が返されます。なお、引数が-1未満または1より大きい場