- unordered_map[meta header]
- std[meta namespace]
- unordered_multimap[meta class]
- function[meta id-type]
- cpp11[meta cpp]
size_type count(const key_type& x) const; // (1) C++11
template <class K>
size_type count(const K& k) const; // (2) C++20
キーを検索し、コンテナ内に見つかった要素の数を返す。
- (1) : キー
x
を検索し、合致する要素数を取得する - (2) : キー
k
を透過的に検索し、合致する要素数を取得する
(2)の透過的な検索は、Hash::transparent_key_equal
が定義される場合に有効になる機能であり、例としてunordered_multimap<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
型が定義されていること
指定されたキーと同じ値のキーの要素が見つかった要素数を返す。
メンバ型 size_type
は符号なし整数型である。
投げない。
x
とk
を共通の変数a
であるとして、
- 平均: O(
count(a)
) - 最悪:
size
について線形時間
#include <iostream>
#include <unordered_map>
int main()
{
std::unordered_multimap<int, char> um;
um.insert(std::make_pair(1, 'a'));
um.insert(std::make_pair(1, 'b'));
std::cout << um.count(1) << std::endl;
std::cout << um.count(2) << std::endl;
return 0;
}
- count[color ff0000]
- um.insert[link insert.md]
2
0
- C++11
- Clang: ??
- GCC: ??
- GCC, C++11 mode: ??
- ICC: ??
- Visual C++: 2012
名前 | 説明 |
---|---|
find |
指定したキーで要素を探す |
size |
要素数を取得する |