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文の条件式として直接利用できる点も便利です。
-
C++ STLのacos()関数とは?使い方をサンプルコード付きで解説
C++ STLのacos()関数とはacos()関数は、ラジアン単位で与えられた値に対する逆余弦(アークコサイン)を返す関数で、C++のSTLに標準で組み込まれています。この関数は<cmath>ヘッダで定義されています。acos()関数の構文acos(var)構文から分かるように、acos()関数はfloat、double、long doubleのいずれかのデータ型を持つ引数varを1つ受け取ります。引数の値は-1から1の範囲内でなければなりません。範囲外の値を渡した場合はNaN(非数)が返される点に注意が必要です。戻り値は、-πからπの範囲におけるvarの逆余弦(ラジアン単位)で
-
C++ STLのasinh()関数とは?使い方とサンプルコードを解説
asinh()関数とはasinh()関数は、ラジアンで指定された角度に対する逆双曲線正弦(アークハイパボリックサイン)を返す関数です。C++ STLに標準で組み込まれており、<cmath>ヘッダーをインクルードすることで利用できます。構文asinh(var)上記の構文が示すように、asinh()関数はfloat型、double型、またはlong double型の引数varを1つ受け取ります。この引数には、負の値・正の値・0のいずれも指定可能です。関数はvarの逆双曲線正弦を返します。asinh()関数の基本的な使用例以下のプログラムは、C++でのasinh()関数の使用方法を示した