C++ STLのmultimap::empty()関数の使い方を徹底解説
この記事では、C++ STLにおけるmultimap::empty()関数の動作、構文、および具体的な使用例について詳しく解説します。
C++ STLにおけるmultimapとは?
multimapは連想コンテナの一種で、mapコンテナとよく似た性質を持っています。キー値とマップ値の組み合わせからなる要素を、特定の順序で格納することができます。mapとの最大の違いは、同じキーに複数の要素を関連付けられるという点です。また、コンテナ内部のデータは常にキーに基づいて自動的にソートされます。
multimap::empty()とは?
multimap::empty()は、C++ STLに組み込まれている関数で、<map>ヘッダーファイル内で定義されています。この関数は、対象となるmultimapコンテナが空かどうかを判定するために使用されます。
具体的には、コンテナのサイズが0であればtrueを返し、何らかの要素が格納されている場合はfalseを返します。
構文
map_name.empty();
パラメータ
この関数は引数(パラメータ)を受け取りません。
戻り値
multimapが空の場合はtrueを、空でない場合はfalseを返します。
入力例1
multimap<char, int> newmap;
newmap.insert(make_pair('A', 10));
newmap.insert(make_pair('B', 20));
newmap.insert(make_pair('C', 30));
newmap.empty();出力例1
false
入力例2
std::multimap<int, int> mymap; mymap.empty();
出力例2
true
サンプルコード
#include<iostream>
#include<map>
using namespace std;
int main(){
multimap<int, int> mul_1;
// multimap1に要素を挿入
mul_1.insert({1, 10});
mul_1.insert({2, 20});
mul_1.insert({3, 30});
mul_1.insert({4, 40});
mul_1.insert({5, 50});
if(mul_1.empty()){
cout<<"\nMultimap is empty";
}
else{
cout<<"\nMultimap is not empty";
cout<<"\nElements in multimap1 are: "<<"\n";
for(auto i = mul_1.begin(); i != mul_1.end(); i++){
cout<<(*i).first<<" "<<(*i).second<<"\n";
}
}
}実行結果
上記のコードを実行すると、以下の出力が生成されます。
Multimap is not empty Elements in multimap1 are: 1 10 2 20 3 30 4 40 5 50
まとめ
multimap::empty()は、コンテナが空かどうかを簡単かつ効率的に確認できる便利な関数です。要素を検索・操作する前にempty()でチェックすることで、意図しない動作を防ぎ、より安全なコードを書くことができます。
-
C++ STLのnegate関数で値の符号を反転する方法
C++のSTL(標準テンプレートライブラリ)には、値の符号を簡単に反転できるnegate関数が用意されています。negateは「否定する」という意味を持つ関数オブジェクトで、正の値を負の値へ、負の値を正の値へと変換します。この記事では、std::transformと組み合わせてnegateを使う方法を解説します。関数プロトタイプnegateは通常、transformアルゴリズムと一緒に使われます。基本的な構文は以下の通りです。function transform(a_begin, a_end, a1_begin, negate()): a_begin = 配列の先頭(
-
C++ STLのatan2()関数の使い方を徹底解説!構文・戻り値・サンプルコード付き
atan2()関数は、座標yとxから逆正接(アークタンジェント)を求めるための関数です。ここでいうyとxは、それぞれy座標とx座標の値を指します。atan2()はC++のSTL(標準テンプレートライブラリ)に組み込まれている関数で、<cmath>ヘッダをインクルードすることで利用できます。通常のatan()関数と異なり、atan2()はxの符号も考慮して正しい象限の角度を返すため、実務でも広く使われています。atan2()関数の構文atan2(dataType var1, dataType var2)構文を見ると分かるように、atan2()関数はfloat型、double型、lon