最終更新日時(UTC):
が更新

履歴 編集

function
<unordered_map>

std::unordered_map::count(C++11)

size_type count(const key_type& x) const;              // (1) C++11

template <class K>
size_type count(const K& k) const;                     // (2) C++20

概要

キーを検索し、コンテナ内に見つかった要素の数を返す。map コンテナはキーの重複を許さないため、この関数は実際には要素が見つかったときに 1 を、そうでないときに 0 を返す。

  • (1) : キーxを検索し、合致する要素数を取得する
  • (2) : キーkを透過的に検索し、合致する要素数を取得する

(2)の透過的な検索は、Hash::transparent_key_equalが定義される場合に有効になる機能であり、例としてunordered_map<string, int> m;に対してm.count("key");のようにstring型のキーを持つ連想コンテナの検索インタフェースに文字列リテラルを渡した際、stringの一時オブジェクトが作られないようにできる。詳細はstd::hashクラスのページを参照。

パラメータ

  • x : 検索するキー値。key_type はメンバ型であり、map コンテナの中で Key の別名として定義される。ここで Key は 1 番目のテンプレートパラメータである。
  • k : 検索するキー。key_typeと透過的に比較可能な型K型のキーである。

テンプレートパラメータ制約

  • (2) : Hash::transparent_key_equal型が定義されていること

戻り値

指定されたキーと同じ値のキーの要素が見つかったなら 1、そうでないなら 0を返す。

メンバ型 size_type は符号なし整数型である。

例外

投げない。

計算量

xkを共通の変数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

処理系

関連項目

名前 説明
find 指定したキーで要素を探す
size 要素数を取得する

参照