std::unordered_multiset<Key,Hash,KeyEqual,Allocator>::count
From cppreference.com
< cpp | コンテナ | unordered_multiset
| size_type count( const Key& key ) const; |
(1) | (C++11以降) |
| template< class K > size_type count( const K& x ) const; |
(2) | (C++20以降) |
1) 指定された引数 key と等価なキーを持つ要素の数を返します。
2) 指定された引数 x と同等に比較される要素の数を返します。このオーバーロードは、Hash::is_transparent および KeyEqual::is_transparent が有効で、それぞれが型を示している場合にのみオーバーロード解決に参加します。これは、そのような
Hash が K と Key の両方の型で呼び出し可能であり、KeyEqual が透過的であることを前提としており、これにより Key のインスタンスを構築せずにこの関数を呼び出すことができます。目次 |
[編集] パラメータ
| key | - | カウントする要素のキー値 |
| x | - | キーと透過的に比較できる任意の型の値 |
[編集] 返り値
1) キー key を持つ要素の数。
2) x と同等に比較されるキーを持つ要素の数。
[編集] 計算量
平均計算量: キー key を持つ要素の数に線形。最悪計算量: コンテナのサイズに線形。
[編集] 注記
| 機能テストマクロ | 値 | 規格 | 機能 |
|---|---|---|---|
__cpp_lib_generic_unordered_lookup |
201811L |
(C++20) | unordered 連想コンテナにおける異種比較検索、オーバーロード (2) |
[編集] 例
このコードを実行
#include <algorithm> #include <iostream> #include <unordered_set> int main() { std::unordered_multiset set{2, 7, 1, 8, 2, 8, 1, 8, 2, 8}; std::cout << "The set is:\n"; for (int e : set) std::cout << e << ' '; const auto [min, max] = std::ranges::minmax(set); std::cout << "\nNumbers [" << min << ".." << max << "] frequency:\n"; for (int i{min}; i <= max; ++i) std::cout << i << ':' << set.count(i) << "; "; std::cout << '\n'; }
実行結果の例
The set is: 8 8 8 8 1 1 7 2 2 2 Numbers [1..8] frequency: 1:2; 2:3; 3:0; 4:0; 5:0; 6:0; 7:1; 8:4;
[編集] 関連項目
| 特定のキーを持つ要素を検索する (公開メンバ関数) | |
| (C++20) |
コンテナが特定のキーを持つ要素を含むか確認する (公開メンバ関数) |
| 特定のキーに一致する要素の範囲を返す (公開メンバ関数) |