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

C++ STLのmap::clear()関数とは?使い方とサンプルコードを徹底解説

本記事では、C++ STLで提供されているmap::clear()関数について、その動作・構文・具体的な使用例をわかりやすく解説します。

C++ STLにおけるmapとは?

mapはC++ STLに用意された連想コンテナの一つで、キー値とマップ値(対応付けられた値)を組み合わせた要素を、特定の順序で格納することができます。mapコンテナの内部では、データは常にキーに基づいて自動的にソートされて管理されます。また、格納された各要素には、それぞれ一意なキーを通じてアクセスします。

map::clear()とは?

map::clear()は、C++ STLに標準で組み込まれている関数で、<map>ヘッダーファイル内で定義されています。この関数は、対象のmapコンテナからすべての要素を削除し、コンテナのサイズを0にします。つまり、map内に格納されていたキーと値のペアがすべて破棄され、空の状態に戻ります。

構文

Map_name.clear();

パラメータ

この関数は引数(パラメータ)を受け取りません。

戻り値

この関数は戻り値を返しません。

計算量

clear()はmap内の全要素を破棄するため、計算量は要素数nに対して線形時間O(n)となります。

使用例

例1:基本的な使い方

入力

map<char, int> newmap;
newmap['a'] = 1;
newmap['b'] = 2;
newmap['c'] = 3;
newmap.clear();

出力

size of the map is: 0

例2:clear()呼び出し前後でのサイズ比較

#include <bits/stdc++.h>
using namespace std;
int main() {
    map<int, string> TP_1, TP_2;
    // 値を挿入
    TP_1[1] = "Tutorials";
    TP_1[2] = "Point";
    TP_1[3] = "is an";
    TP_1[4] = "education portal";
    // mapのサイズを表示
    cout<< "Map size before clear() function: \n";
    cout << "Size of map1 = "<<TP_1.size() << endl;
    cout << "Size of map2 = "<<TP_2.size() << endl;
    // clear()を呼び出して要素を削除
    TP_1.clear();
    TP_2.clear();
    // 削除後のmapのサイズを表示
    cout<< "Map size after applying clear() function: \n";
    cout << "Size of map1 = "<<TP_1.size() << endl;
    cout << "Size of map2 = "<<TP_2.size() << endl;
    return 0;
}

出力

Map size before clear() function:
Size of map1 = 4
Size of map2 = 0
Map size after applying clear() function:
Size of map1 = 0
Size of map2 = 0

まとめ

map::clear()を使うことで、mapコンテナ内の全要素を一度に簡単に削除できます。要素を個別にerase()で削除する場合と異なり、コンテナ全体を空にしたい場面では非常に便利です。ただし、全要素を破棄するため計算量はO(n)となる点には注意しましょう。

  1. C++ STLのlist::clear()関数の使い方を徹底解説!構文と実行例

    本記事では、C++のSTL(Standard Template Library)におけるlist::clear()関数の動作、構文、および具体的な使用例について詳しく解説します。 STLのリスト(std::list)とは? リストは、シーケンス内の任意の位置に対して定数時間で挿入・削除を行えるデータ構造です。C++のSTLでは、リストは双方向連結リストとして実装されており、メモリ上に非連続的に要素を配置できます。 配列やvector、dequeと比較すると、リストはコンテナ内の任意の位置への要素の挿入・移動において優れたパフォーマンスを発揮します。その一方で、要素への直接アクセス(ランダムア

  2. C++ STLのセット(set)とマップ(map)とは?違いと基本的な使い方を解説

    セット(std::set)とは セット(Set)は抽象データ型の一種で、要素の値そのものが識別子として機能するため、すべての要素が一意である必要があります。一度セットに追加した要素の値を直接変更することはできませんが、該当する要素を削除してから、変更後の値を新たに挿入し直すことは可能です。 マップ(std::map)とは マップ(Map)は、要素を「キー」と「値」のペアとして格納する連想コンテナです。各要素はキー値(key)とマップ値(mapped value)を持ち、同一のキー値を持つ要素が複数存在することはありません。 以上の説明から、両者の違いは次のように整理できます。 セット: