C++ STLのmultimap::clear()関数とは?使い方とサンプルコードを徹底解説
この記事では、C++ STLにおける multimap::clear() 関数の動作、構文、そして具体的な使用例について詳しく解説します。
C++ STLにおけるmultimapとは?
multimapは連想コンテナの一種で、mapコンテナとよく似た性質を持っています。キー(key)とマップされた値(mapped value)の組み合わせからなる要素を、特定の順序で格納することができます。multimapの最大の特徴は、同じキーに対して複数の要素を関連付けられる点です。また、コンテナ内のデータは常にキーに基づいて自動的にソートされて保持されます。
multimap::clear()とは?
multimap::clear() 関数は、C++ STLに標準で組み込まれている関数であり、<map> ヘッダーファイル内で定義されています。この関数を呼び出すと、対象のmultimapコンテナからすべての要素が削除され、コンテナのサイズは0になります。
構文
Map_name.clear();
パラメータ
この関数は引数(パラメータ)を受け取りません。
戻り値
この関数は何も返しません(戻り値なし)。
入力例
multimap<char, int> newmap;
newmap.insert(make_pair('a', 1));
newmap.insert(make_pair('b', 2));
newmap.insert(make_pair('c', 3));
newmap.clear();
出力例
size of the multimap is: 0
サンプルコード
#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});
cout << "Multimap size before using clear function : ";
cout << mul_1.size() << '\n';
mul_1.clear();
cout << "Multimap size after using clear function : ";
cout << mul_1.size() << '\n';
}
出力結果
上記のコードを実行すると、次のような出力が得られます。
Multimap size before using clear function : 5 Multimap size after using clear function : 0
補足ポイント
- 計算量: clear() の計算量は O(n) であり、コンテナ内の要素数に比例します。
- イテレータの無効化: clear() を呼び出した後、既存の要素を指していたイテレータや参照はすべて無効になるため注意が必要です。
- 部分的な削除: 一部の要素だけを削除したい場合は、clear() ではなく erase() 関数を使用しましょう。
-
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
-
C++ STLのacos()関数とは?使い方をサンプルコード付きで解説
C++ STLのacos()関数とはacos()関数は、ラジアン単位で与えられた値に対する逆余弦(アークコサイン)を返す関数で、C++のSTLに標準で組み込まれています。この関数は<cmath>ヘッダで定義されています。acos()関数の構文acos(var)構文から分かるように、acos()関数はfloat、double、long doubleのいずれかのデータ型を持つ引数varを1つ受け取ります。引数の値は-1から1の範囲内でなければなりません。範囲外の値を渡した場合はNaN(非数)が返される点に注意が必要です。戻り値は、-πからπの範囲におけるvarの逆余弦(ラジアン単位)で