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

C++ STLのset::count()関数の使い方を徹底解説

この記事では、C++ STLにおけるset::count()関数について、その構文、動作の仕組み、そして戻り値の詳細をわかりやすく解説します。

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

setは、C++ STLが提供する連想コンテナの一つで、重複しない一意な要素を自動的にソートされた順序で格納します。要素の値そのものが識別子として機能するため、同じ値を持つ要素を複数持つことはできません。

また、一度setに追加した値は後から変更することができませんが、要素の削除や新たな追加は自由に行えます。内部実装としては二分探索木(一般的には赤黒木)が採用されており、高速な検索・挿入・削除が可能です。

set::count()とは?

count()は、<set>ヘッダーファイルで定義されている組み込み関数です。この関数は、引数として渡した値が、呼び出し元のsetコンテナ内に何回出現するかを数えるために使用されます。

set内のすべての値は一意であるため、ある値は最大でも1回しか出現しません。そのため、この関数が返すのは0または1の2つの値のみです。

構文

name_of_set.count(const type_t& value);

パラメータ

この関数が受け取るパラメータは1つだけです。それは、setコンテナ内で検索・カウントしたい値です。

戻り値

戻り値は以下の2種類のいずれかになります。

  • 0:指定した値がコンテナ内に存在しない場合
  • 1:指定した値がコンテナ内に存在する場合

使用例

Input: set <int> myset = {1, 2, 3, 4, 6};
    myset.count(2);
Output: 1
Input: set<int> myset = {1, 2, 3, 4, 6};
    myset.count(5);
Output: 0

実際のコード例

#include <bits/stdc++.h>
using namespace std;
int main(){
    int arr[] = {2, 4, 2, 5, 6, 7};
    set<int> ch(arr, arr + 6);
    // 2が存在するかチェック
    if (ch.count(2))
    cout<<"2 is present\n";
    else
        cout<<"2 is not present\n";
    // 9が存在するかチェック
    if (ch.count(9))
        cout<<"9 is present\n";
    else
        cout<<"9 is not present\n";
    return 0;
}

出力結果

上記のコードを実行すると、以下の出力が生成されます。

2 is present
9 is not present

このように、count()関数を使えば、指定した値がset内に存在するかどうかを簡単に判定できます。if文の条件式として直接利用できる点も便利です。

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

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

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

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