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

C++ STLのmap::empty()関数の使い方を徹底解説

本記事では、C++ STLにおけるmap::empty()関数の動作、構文、そして具体的な使用例について詳しく解説します。

C++ STLにおけるmapとは?

map(マップ)は連想コンテナの一種で、キー値とマップされた値の組み合わせからなる要素を、特定の順序で格納することができます。mapコンテナ内のデータは、内部的には常に関連付けられたキーに基づいて自動的にソートされます。また、コンテナ内の各値には、それぞれ一意なキーを通じてアクセスします。

map::empty()とは?

map::empty()は、C++ STLに標準で組み込まれている関数であり、<map>ヘッダーファイル内で定義されています。この関数は、対象となるmapコンテナが空であるかどうかを判定するために使用されます。

具体的には、コンテナのサイズが0であればtrueを返し、要素が1つでも存在すればfalseを返します。

構文

map_name.empty();

パラメータ

この関数は引数(パラメータ)を受け取りません。

戻り値

mapが空の場合はtrueを、空でない場合はfalseを返します。

使用例

入力例1:要素が存在する場合

std::map<char, int> mymap;
mymap.insert({'a', 10});
mymap.insert({'b', 20});
mymap.insert({'c', 30});
mymap.empty();

出力結果

false

入力例2:要素が存在しない場合

std::map<char, int> mymap;
mymap.empty();

出力結果

true

サンプルコード

例1:要素を持つmapの空判定

#include <bits/stdc++.h>
using namespace std;
int main() {
    map<int, int> TP_1;
    TP_1[1] = 10;
    TP_1[2] = 20;
    TP_1[3] = 30;
    TP_1[4] = 40;
    if(TP_1.empty()) {
        cout<<"Map is NULL";
    } else {
        cout<<"Map isn't NULL";
    }
    return 0;
}

出力結果

Map isn't NULL

例2:空のmapとの比較

#include <bits/stdc++.h>
using namespace std;
int main() {
    map<int, int> TP_1;
    map<int, int> TP_2;
    TP_1[1] = 10;
    TP_1[2] = 20;
    TP_1[3] = 30;
    TP_1[4] = 40;
    if(TP_1.empty()) {
        cout<<"Map_1 is NULL";
    } else {
        cout<<"Map_1 isn't NULL";
    }
    if(TP_2.empty()) {
        cout<<"\nMap_2 is NULL";
    } else {
        cout<<"Map_2 isn't NULL";
    }
    return 0;
}

出力結果

Map_1 isn't NULL
Map_2 is NULL

このように、map::empty()を使えば、mapコンテナに要素が格納されているかどうかを簡単に判定できます。要素を追加・削除した後の状態チェックや、ループ処理前の事前確認など、さまざまな場面で活用できる便利な関数です。

  1. C++ STLのセット(set)とマップ(map)とは?違いと基本的な使い方を解説

    セット(std::set)とは セット(Set)は抽象データ型の一種で、要素の値そのものが識別子として機能するため、すべての要素が一意である必要があります。一度セットに追加した要素の値を直接変更することはできませんが、該当する要素を削除してから、変更後の値を新たに挿入し直すことは可能です。 マップ(std::map)とは マップ(Map)は、要素を「キー」と「値」のペアとして格納する連想コンテナです。各要素はキー値(key)とマップ値(mapped value)を持ち、同一のキー値を持つ要素が複数存在することはありません。 以上の説明から、両者の違いは次のように整理できます。 セット:

  2. STLのマップ(map)を実装するC++プログラムの書き方

    マップ(map)とはマップは、要素をキーと値のペアとして対応付けて格納する連想コンテナです。各要素はキー値とマップ値を持ち、同じキー値を持つ要素が複数存在することはありません。使用する主なメンバ関数m::find() – マップ内に指定したキー値(b)を持つ要素が見つかれば、その要素へのイテレータを返します。見つからない場合はend()へのイテレータを返します。m::erase() – マップから指定したキー値の要素を削除します。m::equal_range() – ペア(pair)のイテレータを返します。このペアは、指定したキーと等価なキーを持つコンテナ内のすべての要素を含む範囲の境界を表し