size_type count(const key_type& x) const; // (1) C++11
template <class K>
size_type count(const K& k) const; // (2) C++20
概要
キーを検索し、コンテナ内に見つかった要素の数を返す。unordered_map コンテナはキーの重複を許さないため、この関数は実際には要素が見つかったときに 1 を、そうでないときに 0 を返す。
- (1) : キー
xを検索し、合致する要素数を取得する - (2) : キー
kを透過的に検索し、合致する要素数を取得する
(2)の透過的な検索は、Pred::is_transparentおよびHash::is_transparentが定義される場合に有効になる機能であり、例としてunordered_map<string, int> m;に対してm.count("key");のようにstring型のキーを持つ連想コンテナの検索インタフェースに文字列リテラルを渡した際、stringの一時オブジェクトが作られないようにできる。詳細はstd::hashクラスのページを参照。
パラメータ
x: 検索するキー値。key_typeはメンバ型であり、unordered_mapコンテナの中でKeyの別名として定義される。ここでKeyは 1 番目のテンプレートパラメータである。k: 検索するキー。key_typeと透過的に比較可能な型K型のキーである。
テンプレートパラメータ制約
- (2) :
Pred::is_transparent型およびHash::is_transparent型が定義されていること
戻り値
指定されたキーと同じ値のキーの要素が見つかったなら 1、そうでないなら 0を返す。
メンバ型 size_type は符号なし整数型である。
例外
投げない。
計算量
xとkを共通の変数aであるとして、
- 平均: O(
count(a)) - 最悪:
sizeについて線形時間
例
#include <iostream>
#include <unordered_map>
int main()
{
std::unordered_map<int, char> um;
um[4] = 'D';
std::cout << um.count(0) << std::endl;
std::cout << um.count(4) << std::endl;
return 0;
}
出力
0
1
バージョン
言語
- C++11
処理系
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: 2012 ✅
関連項目
| 名前 | 説明 |
|---|---|
find |
指定したキーで要素を探す |
size |
要素数を取得する |