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

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になっていることがわかります。

  1. C++ STLのasinh()関数とは?使い方とサンプルコードを解説

    asinh()関数とはasinh()関数は、ラジアンで指定された角度に対する逆双曲線正弦(アークハイパボリックサイン)を返す関数です。C++ STLに標準で組み込まれており、<cmath>ヘッダーをインクルードすることで利用できます。構文asinh(var)上記の構文が示すように、asinh()関数はfloat型、double型、またはlong double型の引数varを1つ受け取ります。この引数には、負の値・正の値・0のいずれも指定可能です。関数はvarの逆双曲線正弦を返します。asinh()関数の基本的な使用例以下のプログラムは、C++でのasinh()関数の使用方法を示した

  2. C++ STLのacosh()関数の使い方を徹底解説

    C++ STLのacosh()関数とはacosh()関数は、引数として与えられた値の逆双曲線余弦(アークハイパボリックコサイン)を返す関数です。C++の標準テンプレートライブラリ(STL)に組み込まれており、<cmath>ヘッダをインクルードすることで利用できます。acosh()関数の構文acosh(var)構文からわかるように、acosh()関数はfloat型、double型、long double型のいずれかのパラメータvarを受け取ります。このパラメータには1以上の値を指定する必要があります。関数はvarの逆双曲線余弦を返します。acosh()関数の基本的な使用例以下に、C+