C++ STLのmultiset::clear()関数とは?使い方と実行例を解説
本記事では、C++ STLにおける multiset::clear() 関数の動作、構文、そして具体的な使用例について詳しく解説します。
C++ STLにおけるmultisetとは?
multiset(マルチセット)は、setコンテナとよく似たコンテナです。setと同様に、値をキーとして特定の順序で格納します。
multisetにおいても、値はキーとして識別されます。multisetとsetの主な違いは、setが重複のない一意なキーのみを持つのに対し、multisetでは同じ値のキーを複数持つことができるという点です。
multisetのキーは、二分探索木(binary search tree)の実装にも利用されます。
multiset::clear()とは?
multiset::clear() はC++ STLに組み込まれた関数で、<set> ヘッダーファイル内で定義されています。
この関数は、multisetコンテナ全体をクリアするために使用されます。
clear() を呼び出すと、multisetコンテナからすべての要素が削除され、コンテナのサイズは0になります。
構文
ms_name.clear();
パラメータ
この関数は引数を受け取りません。
戻り値
この関数は何も返しません(void型)。
使用例
入力:
std::multiset<int> mymultiset = {1, 2, 2, 3, 4};
mymultiset.clear();
mymultiset.size();
出力:
multisetのサイズ = 0
サンプルコード①
#include <bits/stdc++.h>
using namespace std;
int main() {
int arr[] = {2, 4, 1, 3, 8, 5, 6};
multiset<int> check(arr, arr + 7);
cout<<"List is : ";
for (auto i = check.begin(); i != check.end(); i++)
cout << *i << " ";
cout<<"\nList when clear() is applied: ";
check.clear();
for (auto i = check.begin(); i != check.end(); i++)
cout << *i << " ";
return 0;
}
実行結果①
上記のコードを実行すると、次のような出力が得られます −
List is : 1 2 3 4 5 6 8 List when clear() is applied:
このように、clear() を呼び出した後はリストが空になり、何も表示されません。
サンプルコード②
#include <bits/stdc++.h>
using namespace std;
int main() {
int arr[] = {2, 4, 1, 3, 8, 5, 6};
multiset<int> check(arr, arr + 7);
cout<<"List is : ";
for (auto i = check.begin(); i != check.end(); i++)
cout << *i << " ";
cout<<"\nList when clear() is applied: ";
if(check.empty()) {
cout<<"\nList is null";
} else {
cout<<"\nList isn't null : ";
for (auto i = check.begin(); i != check.end(); i++)
cout << *i << " ";
cout<<"\nsize is : "<<check.size();
}
int arr2[] = {2, 4, 1, 3, 8, 5, 6};
multiset<int> check_2(arr2, arr2 + 7);
cout<<"\nList when clear() is applied: ";
check_2.clear();
if(check_2.empty()) {
cout<<"\nList is null";
cout<<"\nsize is : "<<check_2.size();
} else {
cout<<"\nList isn't null : "<<check_2.size();
for (auto i = check_2.begin(); i != check_2.end(); i++)
cout << *i << " ";
cout<<"\nsize is : "<<check_2.size();
}
return 0;
}
実行結果②
上記のコードを実行すると、次のような出力が得られます −
List is : 1 2 3 4 5 6 8 List when clear() is applied: List isn't null : 1 2 3 4 5 6 8 Size is : 7 List when clear() is applied: List is null size is : 0
この例では、clear() を呼び出す前後で empty() 関数を使ってコンテナの状態を確認しています。clear() 実行前は7個の要素を持つため空ではなく、実行後はすべての要素が削除され、empty() が true を返し、サイズが0になっていることがわかります。
-
C++ STLのasinh()関数とは?使い方とサンプルコードを解説
asinh()関数とはasinh()関数は、ラジアンで指定された角度に対する逆双曲線正弦(アークハイパボリックサイン)を返す関数です。C++ STLに標準で組み込まれており、<cmath>ヘッダーをインクルードすることで利用できます。構文asinh(var)上記の構文が示すように、asinh()関数はfloat型、double型、またはlong double型の引数varを1つ受け取ります。この引数には、負の値・正の値・0のいずれも指定可能です。関数はvarの逆双曲線正弦を返します。asinh()関数の基本的な使用例以下のプログラムは、C++でのasinh()関数の使用方法を示した
-
C++ STLのacosh()関数の使い方を徹底解説
C++ STLのacosh()関数とはacosh()関数は、引数として与えられた値の逆双曲線余弦(アークハイパボリックコサイン)を返す関数です。C++の標準テンプレートライブラリ(STL)に組み込まれており、<cmath>ヘッダをインクルードすることで利用できます。acosh()関数の構文acosh(var)構文からわかるように、acosh()関数はfloat型、double型、long double型のいずれかのパラメータvarを受け取ります。このパラメータには1以上の値を指定する必要があります。関数はvarの逆双曲線余弦を返します。acosh()関数の基本的な使用例以下に、C+