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

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() 関数を使用しましょう。
  1. 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

  2. C++ STLのacos()関数とは?使い方をサンプルコード付きで解説

    C++ STLのacos()関数とはacos()関数は、ラジアン単位で与えられた値に対する逆余弦(アークコサイン)を返す関数で、C++のSTLに標準で組み込まれています。この関数は<cmath>ヘッダで定義されています。acos()関数の構文acos(var)構文から分かるように、acos()関数はfloat、double、long doubleのいずれかのデータ型を持つ引数varを1つ受け取ります。引数の値は-1から1の範囲内でなければなりません。範囲外の値を渡した場合はNaN(非数)が返される点に注意が必要です。戻り値は、-πからπの範囲におけるvarの逆余弦(ラジアン単位)で